Android安全——客户端安全要点

打印 上一主题 下一主题

主题 959|帖子 959|积分 2877


  • allowBackup属性 android:allowBackup=[“true” | “false”]
设置是否支持备份,默认值为true,应当慎重支持该属性,避免应用内数据通过备份造成的泄漏题目。
三、WebView安全



  • 审慎支持JS功能,避免不必要的贫苦。
提到对于Android4.2以下的JS任意代码实行漏洞,Android4.2以下?不必支持了吧!


  • 请使用https的链接,第一是安全;第二是避免被恶心的运营商挟制,插入广告,影响用户体验。
  • 处置惩罚file协议安全漏洞
//若不需支持,则直接禁止 file 协议
setAllowFileAccess(false);
setAllowFileAccessFromFileURLs(false);
setAllowUniversalAccessFromFileURLs(false);


  • 暗码明文生存漏洞
由于webView默认开启暗码生存功能,所以在用户输入暗码时,会弹出提示框,扣问用户是否生存。若选择生存,则暗码会以明文情势生存到 /data/data/com.package.name/databases/webview.db中,这样就有被盗取暗码的伤害。所以我们应该禁止网页生存暗码,设置WebSettings.setSavePassword(false)


  • 开启安全欣赏模式
<meta-data android:name=“android.webkit.WebView.EnableSafeBrowsing”
android:value=“true” />

启用安全欣赏模式后,WebView 将参考安全欣赏的恶意软件和钓鱼网站数据库检查访问的 URL ,在用户打开之前给予伤害提示,体验类似于Chrome欣赏器。
四、数据存储安全;



  • 秘钥及敏感信息
此类设置应当妥善存放,不要在类中硬编码敏感信息,可以使用JNI将敏感信息写到Native层。


  • SharePreferences
起首不应当使用SharePreferences来存放敏感信息。存储一些设置信息时也要设置好访问权限,如私有的访问权限 MODE_PRIVATE,避免设置信息被窜改。


  • 署名设置signingConfigs
避免明文生存署名暗码,可以将暗码生存到本地,无需上传版本控制系统
在app目录下创建一个不加入版本控制系统的gradle.properties文件:
STORE_PASSWORD = qwer1234
KEY_PASSWORD = demo1234
KEY_ALIAS = demokey
gradle将自动引入gradle.properties文件,可以直接在buld.gradle文件中使用:
signingConfigs {
release {
try {
storeFile file(“E:\FDM\Key\demo.jks”)
storePassword STORE_PASSWORD
keyAlias KEY_ALIAS
keyPassword KEY_PASSWORD
}catch (ex) {
throw new InvalidUserDataException(“You should define KEYSTORE_PASSWORD and KEY_PASSWORD in gradle.properties.”)
}
}
}
五、数据传输安全



  • 使用HTTPS协议
HTTPS的主要头脑是在不安全的网络上创建一安全信道,并可在使用适当的加密包和服务器证书可被验证且可被信托时,对窃听和中间人攻击提供合理的防护。可以说是非常基础的安全防护级别了。


  • Android网络安全性设置
该特性让应用可以在一个安全的声明性设置文件中灵活的自定义其网络安全设置,而无需修改应用代码,满意更高的安全性要求。
在AndroidManifest.xml中设置networkSecurityConfig:
<?xml version="1.0" encoding="utf-8"?> <manifest … >
<application android:networkSecurityConfig=“@xml/network_security_config”
… >

network_security_config文件如下:
<?xml version="1.0" encoding="utf-8"?> example.com
以 PEM 或 DER 格式将自签署或非公共 CA 证书添加到 res/raw/my_ca。这让我追念起年前听到渗透测试结果时的恐惧,好家伙,本身装了个证书…
这部分更多细节、功能请参考官方文档网络安全设置
六、其他安全题目



  • 日志输出
日志是我们开辟调试中不可或缺的一部分,但也是最容易泄漏敏感信息的地方。所以,在我们发布应用时,应当关闭、甚至移除Log输出。


  • 混淆、加固
混淆代码,可以增加反编译破解的难度。但是我们在使用混淆功能时也要留意实体类、与JS交互的方法、第三方混淆设置等题目。
应用加固也是比年来比力热门的应用安全办理方案,各大厂商都有本身的加固方案,常见的如腾讯乐固、360加固等等。


  • 漏洞检测工具
当项目代码量巨大以后,积累了较多的历史代码,人工检测代码工作量大。这时,漏洞检查工具就派上用场了。中文的漏洞检测工具中比力闻名的就是360的FireLine。
参考资料:
Security for Android Developers
Android Intent Scheme URLs攻击
您的 Java 代码安全吗 — 照旧袒露在外?
android WebView详解,常见漏洞详解和安全源码
原文地址:https://www.jianshu.com/p/7f2202c18012
给大家的福利

零基础入门
对于从来没有打仗过网络安全的同砚,我们帮你准备了详细的学习成长蹊径图。可以说是最科学最系统的学习蹊径,大家跟着这个大的方向学习准没题目。

同时每个成长蹊径对应的板块都有配套的视频提供:

因篇幅有限,仅展示部分资料

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

美丽的神话

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表