解决遇到动态加载jar安全的问题。
来源:互联网 发布:软件开发公司名字 编辑:程序博客网 时间:2024/06/02 05:47
Optimized data directory /mnt/sdcard is not owned by the current user
最近在研究android下的动态加载,然后发现当我加载sd卡下的apk的时候会提示以下错误:
Optimized data directory /mnt/sdcard is not owned by the current user. Shared storage cannot protect your application from code injection attacks.”:
原来在android4.1.1 以后加了这样的限制,增加了对JAR/DEX存放目录文件的user_id 和动态加载JAR/DEX的进程的user_id是否一致的判断,如果不一致将抛出异常导致加载失败。
这样确实也是为了安全性的考虑,如果都放到sd卡下,显然也可能会被其他人利用。解决办法:
指定dexoutputpath为APP自己的缓存目录即可。
File optimizedDexOutputPath = activity.getDir("dex", 0);-------------------//在ansroid4.1以后,增加了jar/dex文件存放目录的userid是否一致的判断。不一致就将抛异常,解决办法放在私有目录中即可。----------------------------------
DexClassLoader classLoader = new DexClassLoader(file.getAbsolutePath(),optimizedDexOutputPath.getAbsolutePath(), null, activity.getClassLoader());
就可以解决动态加载jar在4.1以后android系统上面会抛出安全的问题。
外部动态加载DEX文件安全建议
1. 将所需要动态加载的DEX/APK文件放置在APK内部或应用私有目录中
为了所加载的DEX/APK不被恶意代码注入,阿里聚安全建议将要动态加载的DEX/APK放置在APK内部;
2. 使用加密网络协议进行下载加载的DEX/APK文件并将其放置在应用私有目录中
阿里聚安全建议使用加密网络协议进行下载并将下载的DEX或APK放置在应用的私有目录;
3. 对不可信的加载来源进行完整性校验
如果应用必须将所加载的DEX或APK放置在能被其他应用人意读写的目录中(如sdcard)或使用没有加密的网络协议进行下载加载源,阿里聚安全建议对这些不可信的加载源进行完整性校验和白名单处理,以保证不被恶意代码注入
阅读全文
0 0
- 解决遇到动态加载jar安全的问题。
- android 中加载jar插件遇到的问题
- Android 安全——Java环境动态加载Jar之Jar包的加密和解密
- 解决了动态加载的问题
- 解决无法动态加载styleable的问题
- Android动态加载jar DexClassLoader 出现ClassNotFound的问题
- java动态加载指定的类或者jar包反射调用其方法-涉及其他jar中的类就报ClassNotFound问题分析及解决思路
- java动态加载指定的类或者jar包反射调用其方法-涉及其他jar中的类就报ClassNotFound问题分析及解决思路
- flash动态加载FLV时遇到的问题
- android 动态加载RadioButton遇到的适配问题
- 解决浏览器安全沙箱问题的加载处理
- 解决Android Studio加载第三方jar包,出现包重复加载的问题:
- 解决Android Studio加载第三方jar包,出现包重复加载的问题:
- 解决Android Studio加载第三方jar包,出现包重复加载的问题:
- 解决Android Studio加载第三方jar包,出现包重复加载的问题
- 解决Android Studio加载第三方jar包,出现包重复加载的问题
- 解决Android Studio加载第三方jar包,出现包重复加载的问题:
- 加载jar包的问题
- 第十二周项目五——拓扑排序算法验证
- mt2523Flash tool 是否支援 UART download?
- 【c#系列 四】从java到.net 核心
- SM4国密算法实现分析
- Unity 生成WebGL时UI界面随浏览器自适应
- 解决遇到动态加载jar安全的问题。
- PHP-TP微信公众号接入微信分享
- 日请求过亿的Web系统PHP7升级实践
- C/C++的注释规范
- POJ 3723 Conscription (Kruskal并查集求最小生成树)
- 机器学习保险行业问答开放数据集: 2. 使用案例
- LeetCode 之 Multiply Strings
- Intellij Idea没有拼写检查错误提示
- c++ 笔记