我正在摆弄 java .policy 文件,并想知道如何做一些事情,例如阻止调用 java.util.Date() 。
我只是想更好地了解 .policy 文件的工作原理以及如何将其用于沙箱代码。
恐怕你在那里就不走运了。
正如帕洛·埃伯曼所说,package.access
可以阻止包层次结构。您可以通过自定义更精确地了解这一点SecurityManager
,这通常是一个非常好的迹象,表明您正在做一些非常狡猾的事情。
一般来说,你可以做一个ClassLoader
它并不总是委托给其父级。从技术上讲,不符合当前的 Java SE 规范,尽管 Java EE 规范鼓励这样做。你可以屏蔽掉java.util.Date
。如果任何其他类引用它,仍然可以通过反射访问它,或者您可以获得它的实例。您可以阻止使用的传递闭包Date
,包括那些以某种方式返回Date
。但是,要在最短日期内完成该计划,您必须加载java.util.Date
在你的类加载器中,你不能与所有其他加载器一起使用java.*
类。
所以,错误,更换java.util.Date
rt.jar 中的类(可能使用 Java 代理),并替换为您不想限制的任何类new Date()
with new Date(System.currentTimeMillis())
.
(顺便说一句,+1 到任何减少对System.currentTimeMillis()
以及其他魔法方法。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)