Java – 动态jar加载如何被利用?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java – 动态jar加载如何被利用?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1313字,纯文字阅读大概需要2分钟。
内容图文
我正在研究一个分析JAR文件的封闭源Java应用程序.
由于java可以很容易地反编译,并且混淆真的不是什么大不了的事,
我想提供一个在我的服务器上执行应用程序的在线服务
返回它的结果很像fernflower:www.reversed-java.com/fernflower/.
问题是,我担心这会让我的应用程序加载任何潜在的灾难
即使我从未运行过罐子,服务器上的有害罐子也是如此.
我正在做的就是使用URLClassLoader和JarInputStream加载它们.
我正在加载的jar可以在我的原始应用程序中覆盖类以执行恶意代码,
或搞乱我的程序?
动态加载罐子有哪些风险?
解决方法:
What are the risks in dynamically loading jars?
动态加载本身没有风险.风险实际上是运行不受信任的代码的风险.如果您在未采取适当预防措施的情况下这样做,则可能会使您的机器完全受损.
如果您要执行此类操作,至少应该在沙箱中运行不受信任的代码,以阻止它执行任何可能有害的操作.例如,您需要阻止读取和写入本地文件,运行外部进程,使用反射,访问系统属性等.您可能希望停止创建线程,创建套接字以及其他消耗系统资源的东西.
最后,您需要考虑一些不受信任的JAR具有无限循环方法的情况.这是使用安全沙箱无法解决的问题.实际上,摆脱循环线程的唯一防弹方法是退出JVM并重新启动它.
Can a jar im loading override classes in my original app in order to execute malicious code, or mess up my program?
我认为它不能轻易覆盖你的课程,但是有许多其他方法可以让不受信任的代码“搞乱”你的世界;往上看. (如果不受信任的代码可以执行反射代码,那么它可能会通过搞乱类加载器的私有数据结构来覆盖您的类.)
内容总结
以上是互联网集市为您收集整理的Java – 动态jar加载如何被利用?全部内容,希望文章能够帮你解决Java – 动态jar加载如何被利用?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。