1.将不必要导出的组件设置为不导出,并显式设置所注册组件的"android:exported”属性为 false;
2.如果需要导出组件,禁止使用File域WebView.getSettings.setAllowFileAccess(false);
3.如果需要使用File协议,禁止File 协议调用JavaScript: WebView.getSettings.setJavaScriptEnabled(false)
ps:组件导出定义:
组件的导出具体表现在清单文件中,组件中存在"android:exported"这个属性,其值为true时表示组件存在导出。存在组件导出有以下几种情况
a. 主动设置android:exported为true
b. 组件存在IntentFilter,存在IntentFilter时android:exported属性默认值为true
c. 当minSdkVersion或者targetSdkVersion小于16时,默认为true 大于17时,默认为false
在app上的具体表现是:比如游戏登陆时调用微信的Activity登陆组件,微信的Activity登陆组件就是可被导出的。简单来讲就是导出的组件可以被第三方app调用(唤醒)