我在 Stackoverflow 上阅读了很多关于这个问题的问题,但无法停止找到我的问题的解决方案或答案。如果已经有一个,如果有人给出提示,我将不胜感激......
我的问题是是否可以完全禁用不可信代码的反射?功能类似于getDeclaredMethods()
(参见测试.java)。我已经有了一个 Java 安全管理器,如果代码尝试写入/读取等,它会抛出安全异常。 ...
如果可能的话,有人可以告诉我怎么做吗?
Bruno
测试.java
TestClass cls = new TestClass();
Class c = cls.getClass();
// returns the array of Method objects
Method[] m = c.getDeclaredMethods();
for(int i = 0; i < m.length; i++) {
System.out.println("method = " + m[i].toString());
}
所以我没有直接使用 checkPermission() 解决了问题。我的解决方法是检查 java.lang.reflect 包是否被访问。
@Override
public void checkPackageAccess(String pkg){
// don't allow the use of the reflection package
if(pkg.equals("java.lang.reflect")){
throw new SecurityException("Reflection is not allowed!");
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)