银行类app如何保证安全性
做個幾個銀行類的app,他們對app安全的要求都比較高,這篇文章整理一些日常開發(fā)中的安全性處理注意的地方。
##sharedPreference
很多app在使用sharedpreferece儲存?zhèn)€人數(shù)據(jù),然后這部分儲存是不安全的。
1.創(chuàng)建模式要正確MODE_PRIVATE。
因?yàn)槿绻鞘褂肕ODE_WORLD_READABLE創(chuàng)建的sharedpreference文件其他app是可以讀取到的。如果是使用MODE_WORLD_WRITEABLE創(chuàng)建的sharedpreferece,雖然其他app是不能讀取到,但是是可以通過獲取跟你app相同的sharedUserId從而讀取該文件的內(nèi)容。
root權(quán)限下的用戶不管哪種模式都可以讀取到sharedpreferece里面的信息。
2.如果需要進(jìn)程間數(shù)據(jù)共享,可考慮content provider。
3.盡量避免將密碼等敏感數(shù)據(jù)信息明文存儲在Shared Preferences中。
##網(wǎng)絡(luò)傳輸
1.對敏感信息進(jìn)行對稱加密。如3Des,RSA加密。
2.不建議對整個傳輸?shù)膱笪倪M(jìn)行加密,因?yàn)閿?shù)據(jù)量比較大,可對請求數(shù)據(jù)進(jìn)行單向加密,生成一個sign,然后上傳到服務(wù)端,讓服務(wù)端進(jìn)行同原文的比對。驗(yàn)證數(shù)據(jù)有沒有被篡改。
3.在物理傳輸層可使用https的傳輸方式來替代http協(xié)議。HTTPS 是 HTTP 的安全版本,為什么這么說呢?因?yàn)镠TTPS 自帶加密、驗(yàn)簽、檢查數(shù)據(jù)完整性等功能,它在 HTTP 下加入了 SSL (Secure Socket Layer),SSL 位于 TCP/IP 和 HTTP 協(xié)議之間,負(fù)責(zé)加密、驗(yàn)簽、檢查數(shù)據(jù)完整性工作
##其他
1.本地文件敏感數(shù)據(jù)不能保存,如要要保存,必須進(jìn)行加密,加密算法不能是偽加密,比如Base64加密。
2.對于存在本地的密鑰,可使用jni保存到so文件里面。
3.apk打包要進(jìn)行簽名和混淆處理。
4.日志打印要進(jìn)行控制。
5.頁面跳轉(zhuǎn)做app防劫持處理。
##app加固
有一些第三方的公司專門對app做加固操作,防止應(yīng)用被逆向分析,反編譯,二次打包。
或者使用360提供的免費(fèi)加固等。
##防止界面劫持
在android系統(tǒng)中,程序可以枚舉當(dāng)前運(yùn)行的進(jìn)程而不需要聲明任何權(quán)限,如果攻擊者注冊一個receiver,響應(yīng)android.intent.action.BOOT_COMPLETED,使得開啟啟動一個service;在這個service中啟動一個計時器,不停枚舉當(dāng)前進(jìn)程中是否有預(yù)設(shè)的進(jìn)程啟動,如果發(fā)現(xiàn)有預(yù)設(shè)進(jìn)程,則使用FLAG_ACTIVITY_NEW_TASK啟動自己的釣魚界面,而正常應(yīng)用的界面則隱藏在釣魚界面的后面。
防止劫持的辦法是啟動一個Service(在頁面onCreate的時候去啟動這個服務(wù)),然后判斷當(dāng)前頁面的包名和系統(tǒng)棧頂頁面的包名是否一致,如果不一致的話有可能被劫持的風(fēng)險,則app給出相應(yīng)的提示或者跳轉(zhuǎn)到相應(yīng)的頁面。
總結(jié)
以上是生活随笔為你收集整理的银行类app如何保证安全性的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Pacman基本使用
- 下一篇: 黑龙江测绘局事业单位2009拟聘人员公示