摘要:還有就是項目發布后項目中一些數據安全,等方面,都值得我們考慮,思索。官方文檔安全說明及其以上系統提供了為應用程序數據的備份和恢復功能,此功能的開關決定于該應用程序中文件中的屬性值,其屬性值默認是。解決方案自己進行數據加密。
1. AndroidManifest在個人和公司開發的項目發布后,作為軟件工程師最擔心的就是代碼安全(雖說現今而言,技術已沒有什么秘密,聰明人很多,你的功能可能別人稍加研究就能不看代碼也能實現(黑科技除外),但實現歸實現,實現的方案,思路,性能這些是別人無法復制的)。
還有就是項目發布后項目中一些數據安全,等方面,都值得我們考慮,思索。
AndroidManifest中的android:allowBackup屬性,默認為true,如無特殊情況,可以改為false,防止數據被備份。
官方文檔 安全說明
2. 防截屏Android API Level
8及其以上Android系統提供了為應用程序數據的備份和恢復功能,此功能的開關決定于該應用程序中AndroidManifest.xml文件中的allowBackup屬性值[1]
,其屬性值默認是True。當allowBackup標志為true時,用戶即可通過adb backup和adb
restore來進行對應用數據的備份和恢復,這可能會帶來一定的安全風險。Android屬性allowBackup安全風險源于adb backup容許任何一個能夠打開USB
調試開關的人從Android手機中復制應用數據到外設,一旦應用數據被備份之后,所有應用數據都可被用戶讀??;adb
restore容許用戶指定一個恢復的數據來源(即備份的應用數據)來恢復應用程序數據的創建。因此,當一個應用數據被備份之后,用戶即可在其他Android手機或模擬器上安裝同一個應用,以及通過恢復該備份的應用數據到該設備上,在該設備上打開該應用即可恢復到被備份的應用程序的狀態。尤其是通訊錄應用,一旦應用程序支持備份和恢復功能,攻擊者即可通過adb backup和adb
restore進行恢復新安裝的同一個應用來查看聊天記錄等信息;對于支付金融類應用,攻擊者可通過此來進行惡意支付、盜取存款等;因此為了安全起見,開發者務必將allowBackup標志值設置為false來關閉應用程序的備份和恢復功能,以免造成信息泄露和財產損失。
在登錄和注冊,或修改密碼等敏感數據操作時,如果手機中有后臺默認隱藏截屏的應用,在輸入是一直截屏,就有可能盜取敏感數據信息。
解決方案:
在Activity onCreate 中加入:
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);3. 本地數據加密
開發過程中少不了通過 android.content.SharedPreferences 進行一些數據和變量存儲,但是這些數據很容易被讀取到,所以需要應對數據進行加密處理。
解決方案:
自己進行數據加密。
通過第三方進行加密,在此推薦:Hawk
4. 隱藏日志如果開發項目搭建之初就對項目整體考慮周到了,我覺得這點應該不用,但是如果項目框架搭建之初沒進行此方面的考慮,就得自行處理了,具體方案如下:
先在當前Module下的build.gradle中的buildTypes方法中代碼至如下(之前自己的配置代碼不變):
buildTypes { release { buildConfigField "boolean", "LOG_DEBUG", "false" proguardFiles getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro" } }
然后在proguard-rules.pro文件中加入:
-assumenosideeffects class android.util.Log{ public static boolean isLoggable(java.lang.String, int); public static int v(...); public static int i(...); public static int w(...); public static int d(...); public static int e(...); }
至此,可以完全隱藏android.util.Log的所有日志。
5. 混淆先在當前Module下的build.gradle中的buildTypes方法中修改代碼至如下(之前自己的配置代碼不變):
buildTypes { release { minifyEnabled true } }
然后再在proguard-rules.pro文件中加入引用的jar、library等進行排除操作。
在此推薦一個Android Studio插件,免去自己一個一個添加的麻煩:AndroidProguardPlugin 一鍵生成項目混淆代碼插件(此插件還在繼續完善中,如有沒有添加的庫,可以直接聯系插件開發者進行添加)
以上是總結的一些安全方面的方案,希望有用,當然,代碼方面還可以進行項目加殼處理,進一步進行安全保護,具體加殼可以利用一些第三方平臺等,這里不一一列舉,自行Baidu,Google。
by anonymous (感謝趙同學整理)
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/11201.html
摘要:原文地址游客前言金三銀四,很多同學心里大概都準備著年后找工作或者跳槽。最近有很多同學都在交流群里求大廠面試題。 最近整理了一波面試題,包括安卓JAVA方面的,目前大廠還是以安卓源碼,算法,以及數據結構為主,有一些中小型公司也會問到混合開發的知識,至于我為什么傾向于混合開發,我的一句話就是走上編程之路,將來你要學不僅僅是這些,豐富自己方能與世接軌,做好全棧的裝備。 原文地址:游客kutd...
閱讀 1014·2021-10-19 11:42
閱讀 2971·2021-09-10 10:51
閱讀 677·2021-09-09 09:33
閱讀 1759·2021-09-01 10:43
閱讀 2767·2019-08-30 12:43
閱讀 3515·2019-08-30 11:24
閱讀 2113·2019-08-30 10:56
閱讀 2776·2019-08-29 11:00