服务器之家

服务器之家 > 正文

解析使用Kotlin时值得注意的编码错误

时间:2019-11-03 21:45     来源/作者:开源中国

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

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

解析使用Kotlin时值得注意的编码错误

而随着Kotlin的出现,越来越多的知名组织愈加重视移动应用程序的安全性。最近由DHS与NIST联合的一项关于移动设备安全研究发现,应用程序中的漏洞通常是没有遵循安全编码引起,这些漏洞会对用户的数据造成某种危害。

对于使用Kotlin开发人员来说,熟悉这门语言并了解移动应用程序的安全编码是非常重要的。以下是在使用Kotlin时遇到的一些常见漏洞:

不安全数据存储

Android生态系统为应用程序提供了几种存储数据的方法。开发人员使用的存储类型取决于几点:存储的数据类型、数据的使用以及数据是否应该保持私有或与其他应用程序共享。

而常见的编码错误是以明文存储敏感信息。例如,经常在应用程序使用的“Shared Preference”或数据库查找API密码、密码和PII(Personally Identifiable Information),由于攻击者能够访问应用程序的数据库(根设备、应用程序的备份等),从而检索使用该应用的其他用户的凭据,这类疏忽越来越多地导致重要数据丢失。

不安全通信

目前,大多数移动应用程序在某种程度上以client-server的方式交换数据,当进行通信时,用户数据就会在移动运营商网络、或者某些WiFi网络和互联网之间进行传输。正是这个过程,攻击者就能利用其中的某个弱环节发起攻击。如果数据传输没有使用SSL/TLS加密,则攻击者不仅能够监视以明文传输的通信数据,而且还能够窃取交换的数据并执行中间人攻击。

为了防止不安全的通信,必须始终把网络层认为是不安全的,并不断确保移动程序和后端服务器之间的所有通信都是加密的。

不安全认证

移动设备中的输入机制,例如4-PIN码或者基于TouchID等特性的身份验证,都会导致移动应用程序的身份验证不安全且容易遭受攻击。

除非有功能需求,否则移动应用程序不需要对其进行实时身份验证的后端服务器。即使存在这样的后端服务器,用户通常也不需要在任何时候都处于联机状态。这给移动应用的身份验证带来了巨大的挑战,每当在本机进行身份验证时,就可以通过运行时操作或修改二进制文件来绕过已越狱设备上的身份验证。

不安全的身份验证不仅仅是猜出密码、默认用户帐户或破坏数据。有时,可以绕过身份验证机制,系统无法识别用户并记录其(恶意)行为。

代码篡改

所谓的代码篡改指的是:在设备上下载一个应用程序后,该应用的代码和数据是存于该设备的。由于大多数应用程序是公共的,这导致攻击可以进行修改代码、操作内存内容、更改或替换系统API或者修改应用程序的数据和资源。

为了防止代码篡改,重要的是移动应用程序能够在运行时检测到代码已被添加或更改。开发团队应该做出相应的行动,向服务器报告代码冲突或者执行关机。

魔高一尺,道高一丈。技术总是不断发展,未来仍会暴露出新的应用程序安全性漏洞,通过警惕一些编码错误,开发人员可以构建更安全的Android应用,避免掉入陷阱。

利用技术总是在不断发展;未来可能会基于可能暴露新的应用程序篡改点的依赖关系发现新的漏洞。通过了解这些编码错误,开发人员可以构建更安全的Android应用程序,并躲开可能导致这些情况的陷阱。

标签:

相关文章

热门资讯

玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分
玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分 2019-06-21
男生常说24816是什么意思?女生说13579是什么意思?
男生常说24816是什么意思?女生说13579是什么意思? 2019-09-17
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情 2019-06-22
超A是什么意思 你好a表达的是什么
超A是什么意思 你好a表达的是什么 2019-06-06
抖音撒撒累累是什么歌 撒撒累累张艺兴歌曲名字
抖音撒撒累累是什么歌 撒撒累累张艺兴歌曲名字 2019-06-05
返回顶部