本年5月,谷歌在I/O大会上宣告,Kotlin编程言语成为其Android使用程序开发人员的首选言语。

Kotlin是一种面向现代多平台使用程序的编程言语,成为谷歌开发Android使用程序的首选言语后,许多开发人员逐渐地从Java转向Kotlin。根据最新的一项查询显现,有62%的开发人员运用Kotlin来构建移动使用程序,另有41%的开发人员运用Kotlin来构建Web后端项目。

而跟着Kotlin的呈现,越来越多的闻名组织愈加重视移动使用程序的安全性。最近由DHS与NIST联合的一项关于移动设备安全研讨发现,使用程序中的缝隙一般是没有遵循安全编码引起,这些缝隙会对用户的数据造成某种损害。

关于运用Kotlin开发人员来说,了解这门言语并了解移动使用程序的安全编码是非常重要的。以下是在运用Kotlin时遇到的一些常见缝隙:不安全数据存储Android生态体系为使用程序供给了几种存储数据的办法。开发人员运用的存储类型取决于几点:存储的数据类型、数据的运用以及数据是否应该坚持私有或与其他使用程序共享。而常见的编码过错是以明文存储敏感信息。例如,经常在使用程序运用的“SharedPreference”或数据库查找API暗码、暗码和PII(PersonallyIdentifiableInformation),由于进犯者可以拜访使用程序的数据库(根设备、使用程序的备份等),从而检索运用该使用的其他用户的凭证,这类忽略越来越多地导致重要数据丢失。

不安全通讯目前,大多数移动使用程序在某种程度上以client-server的方式交换数据,当进行通讯时,用户数据就会在移动运营商网络、或许某些WiFi网络和互联网之间进行传输。正是这个过程,进犯者就能利用其间的某个弱环节发起进犯。如果数据传输没有运用SSL/TLS加密,则进犯者不只可以监视以明文传输的通讯数据,而且还可以盗取交换的数据并执行中间人进犯。为了避免不安全的通讯,有必要始终把网络层认为是不安全的,并不断确保移动程序和后端服务器之间的所有通讯都是加密的。

不安全认证

移动设备中的输入机制,例如4-PIN码或许根据TouchID等特性的身份验证,都会导致移动使用程序的身份验证不安全且简单遭受进犯。除非有功用需求,不然移动使用程序不需要对其进行实时身份验证的后端服务器。即使存在这样的后端服务器,用户一般也不需要在任何时候都处于联机状态。这给移动使用的身份验证带来了巨大的应战,每当在本机进行身份验证时,就可以经过运行时操作或修正二进制文件来绕过已越狱设备上的身份验证。不安全的身份验证不只仅是猜出暗码、默许用户帐户或损坏数据。有时,可以绕过身份验证机制,体系无法识别用户并记录其(恶意)行为。

代码篡改

所谓的代码篡改指的是:在设备上下载一个使用程序后,该使用的代码和数据是存于该设备的。由于大多数使用程序是公共的,这导致进犯可以进行修正代码、操作内存内容、更改或替换体系API或许修正使用程序的数据和资源。为了避免代码篡改,重要的是移动使用程序可以在运行时检测到代码已被增加或更改。开发团队应该做出相应的举动,向服务器陈述代码抵触或许执行关机。

魔高一尺,道高一丈。技术总是不断发展,未来仍会露出出新的使用程序安全性缝隙,经过警惕一些编码过错,开发人员可以构建更安全的Android使用,避免掉入圈套。利用技术总是在不断发展;未来或许会根据或许露出新的使用程序篡改点的依赖关系发现新的缝隙。经过了解这些编码过错,开发人员可以构建更安全的Android使用程序,并躲开或许导致这些情况的圈套。

安卓应用程序一般采用什么计算机语言开发,Kotlin 编程语言成为其 Android 应用程序开发人员的首选语言...相关推荐

  1. 命令行开发、编译、打包Android应用程序

    Android SDK提供了一系列命令行工具,用来进行Android应用的开发.调试.打包等工作!Eclipse能够进行Android应用开发的相关工作,也是调用了这些工具而已. 只有掌握了命令下的工 ...

  2. android 百度地图开发 别人用不了,Android百度地图开发的那些不足之处

    Android百度地图开发的那些不足之处,最近做的项目中百度地图是很重要的一个模块,其中实现了定位.自定义Marker图标.线路规划.SuggestionSearch检索.地图截图以及导航等功能.因为 ...

  3. android开发实验报告二,《Android 移动应用开发》实验报告-范本2(33页)-原创力文档...

    实验1<Android活动的使用> 实验学时: 2 每组人数: 1 实验类型: 1 (1:基础性 2:综合性 3:设计性 4:研究性) 实验要求: 1 (1:必修 2:选修 3:其它) 实 ...

  4. cordova开发插件,并在android studio中开发、调试

    之前用过cordova Lib包装H5页面,自己写插件,但做法是野路子,不符合cordova插件的开发思路,这次项目又需要包装H5页面,同时需要自定义插件.所以又折腾了一次cordova自定义插件. ...

  5. android移动开发基础课后答案,《ANDROID移动应用开发基础》见面课及答案

    <<ANDROID移动应用开发基础>见面课及答案>由会员分享,可在线阅读,更多相关<<ANDROID移动应用开发基础>见面课及答案(7页珍藏版)>请在装 ...

  6. 为什么Android项目mainactivity中有一个变量R_【Android开发入门教程】二.Android应用程序结构分析!...

    一.新建HelloWorld项目: 1.打开Eclipse,点击"File"->"New"->"Project"-Android ...

  7. imx6 android 最新,IMX6开发板创建第一个Android应用程序helloworld

    运行行 AndroidStudio 程序.如下图,选择创建一个新的 androidstudio 工程(基于 迅为-i.mx6开发板) 应用名称改为"helloworld",项目保存 ...

  8. Android开发固定app图标大小,Android和IOS开发图标、启动页尺寸

    最近项目在做android和ios的项目,设计师让我给出图标的尺寸,于是查了一下尺寸. 一.开发中的实际情况: 第一步:产品经理和UI设计师制定好UI规范,然后开始做图标做颜色做尺寸等一系列和APP界 ...

  9. 浙大计算机学院app开发,App Inventor - 零基础Android移动应用开发

    Q:我需要特殊版本的计算机吗? A:任何计算机都可以用于App Inventor开发,包括但不限于各个版本的MS Windows.各个版本的Mac OS X.各种发行版本的Linux.关键是要能上网( ...

最新文章

  1. mybatis使用find_in_set导致cpu占用过高
  2. asp.net中@page指令的属性Inherits、Src、CodeBehind区别
  3. spring boot整合spring5-webflux从0开始的实战及源码解析
  4. array_map常用技巧
  5. centos mysql php tomcat_centos 一键部署安装nginx,mysql,php,apache,tomcat,redis等包合集
  6. [XSY] 绿色(圆方树、树形DP、树上差分)
  7. 扩展卢卡斯定理(Exlucas)
  8. Protobuf3详细介绍
  9. 耳机插在主机后面声音很小,音频软件测试很大声音,如何解决电脑前面耳机没声音后面却正常的问题...
  10. Prewitt和Sobel算子
  11. 测试实践:华为测试流程总结
  12. rtl8111gr服务器系统,6款主板板载网卡对比
  13. 【单片机基础篇】51单片机流水灯
  14. MacBook安装虚拟机VMware Fusion
  15. 不用U盘从linux重装win系统,不用U盘和光盘安装win7旗舰版系统
  16. P1427 小鱼的数字游戏——栈的初次会面
  17. 注意力机制最新综述解读
  18. 完美定制你的QQ,把QQ里不要的文件通通删除!
  19. 美国留学申请干货--转自 AdmitWrite留学(无图)
  20. [Practical.Vim(2012.9)].Drew.Neil.Tip52 学习摘要

热门文章

  1. web前端技术分享:前端开发与后端开发的区别是什么?
  2. 什么是抽象类?怎么定义?
  3. Python技术分享:教你如何爆破隔壁WiFi密码
  4. oracle 数据统计收集,Oracle 10g收集数据库统计信息
  5. java dictionary遍历_C# Dictionary 的几种遍历方法
  6. java mysql自动备份_java定时备份数据之二_MySQL
  7. python3 long类型_Python3 基本数据类型
  8. 手机main.html文件,tab-main.html
  9. wxWidgets:wxSocketBase类用法
  10. wxWidgets:wxPickerBase类用法