公司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
解决方法:动态申请相应权限,必要时做出充分使用说明