加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java Security Manager完全禁用反射

发布时间:2020-12-15 01:00:30 所属栏目:Java 来源:网络整理
导读:关于这个问题,我一直在阅读关于Stackoverflow的很多问题,但无法找到解决方案或解决我的问题.如果已经有人,如果有人提示,我将不胜感激…… 我的问题/问题是,是否可以完全禁用不值得信赖的代码的反射?函数如getDeclaredMethods()(参见test.java).我已经有了一
关于这个问题,我一直在阅读关于Stackoverflow的很多问题,但无法找到解决方案或解决我的问题.如果已经有人,如果有人提示,我将不胜感激……

我的问题/问题是,是否可以完全禁用不值得信赖的代码的反射?函数如getDeclaredMethods()(参见test.java).我已经有了一个Java安全管理器,如果代码试图写/读/等,它会抛出安全例外. …

如果有可能,有人可以告诉我怎么样?

布鲁诺

test.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!");
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读