Android常见安全风险点之消息处理不当

Activity,Service等组件有些是对外开放的(manifest.xml 中 export为true或定义的intent-filter的组件是可导出组件),当这些组件传递的参数未做校验时,这些参数可能导致APP 拒绝服务。

请严格校验输入参数,注意空值判定和类型转换判断,防止由于异常输入导致的应用崩溃。

我要评论!

想一个你喜欢的昵称。
给一个你的常用邮箱。
想和萌萌哒的TA们说点啥。
  • 忘记加载activity的layout文件:setContentView(R.layout.main);
  • 隐式intent没有明确指明哪些接收方有权限接收,恶意程序指定action标识后,可以获取intent内容,导致数据泄露,intent劫持,仿冒,钓鱼应用等风险。 使用Intent.setPackage、Intent.setComponent、Intent.setClassName、Intent.s...
  • 存在被攻击者利用并通过密钥构造伪数据的风险。 可以通过网上的第三方加固平台来实现,如爱加密、阿里聚安全加密等,同时建议在进行加解密等敏感操作的时候,将算法写到SO扩展库中,这样处理会更安全。
  • 风险在于数据库数据泄露,可被删除、篡改等问题。 若有这方面的问题,其实可以参考WEB上对SQL的防护,通常可以是定向过滤、参数化等,也可以是白名单模式。 然而对于安卓而言,考虑到数据库文件就在本地,所以建议增加一环,将SQLITE文件进行加密,解密放在SO扩展中。
  • 在manifest.xml中定义Debuggable项,如果该项被打开,app存在被恶意程序调试的风险,可能导致泄漏敏感信息泄漏等问题。 显示的设置manifest的debuggable标志为false
微信扫一扫即可带走我!