APP部分漏洞及解決方法

 公司APP在教育移動互聯網應用程序備案管理平臺上收到通報預警,陳列了部分需要解決的漏洞,陳列如下

 

1. 漏洞-動態註冊Receiver風險

解決方法:

1.在 AndroidManifest.xml 文件中靜態註冊 BroadcastReceiver,同時設置 exported="false"。

2.必須動態註冊 BroadcastReceiver時,使用registerReceiver(BroadcastReceiver, IntentFilter, broadcastPermission,android.os.Handle)函數註冊。

 

2. 漏洞-WebView遠程代碼執行漏洞

解決方法:

如果一定要使用addJavascriptInterface接口,需使用以下方法:

1. 設置minSdkVersion值大於或等於17,使應用不能在4.2以下系統上運行。

2. 允許被JavaScript調用的函數必須以@JavascriptInterface進行註解。

 

3. 漏洞-WebView明文存儲密碼漏洞

解決方法:

建議開發者通過WebView.getSettings().setSavePassword(false)來關閉WebView組件的密碼保存功能。

 

4. 漏洞-RSA加密算法不安全使用風險

解決方法:

1.使用RSA算法進行數字簽名時,建議密鑰長不要低於512位,推薦1024位。

2.使用RSA加密時,如果設置工作模式爲ECB,建議填充方式爲OAEPWithSHA256AndMGF1Padding。

 

5. 漏洞-密鑰硬編碼風險

解決方法:

1. 使用算法生成密鑰。

2. 若不使用算法生成密鑰,則使用參數的形式傳遞密鑰,使密鑰與加密算法不在同一函數中

 

6. 漏洞-數據庫注入漏洞

解決方法:

1. 不必要導出的Provider組件,建議顯示設置組件的“android:exported”屬性爲false。如果Provider組件需要與其他APP共享數據或者交互,請對組件進行權限控制和參數校驗。

2. 不要在query中使用拼接字符串形式構造的SQL語句去查詢底層SQLite數據庫,使用selectionArgs進行參數化查詢。 修復代碼示例如下: selection = "name=?"; String[] selectionArgs = new String[]{et_name.getText().toString()}; cursor = sqldb.query( "addressbook",null, selection, selectionArgs, null,null,null,null);

 

7. 漏洞-0204

描述:

該應用存在濫用權限。 1:android.permission.RESTART_PACKAGES

2:android.permission.CHANGE_WIFI_STATE

3:android.permission.CHANGE_WIFI_MULTICAST_STATE

4:android.permission.BLUETOOTH 文件5:android.permission.RECORD_AUDIO 文件6:android.permission.WRITE_SETTINGS

解決方法:動態申請相應權限,必要時做出充分使用說明

發佈了38 篇原創文章 · 獲贊 24 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章