相关疑难解决方法(0)

禁用当前线程的Java反射

我需要调用一些半可靠的Java代码,并希望禁用在代码执行期间使用反射的功能.

try{
   // disable reflection somehow
   someObject.method();
}
finally{
   // enable reflection again
}
Run Code Online (Sandbox Code Playgroud)

可以使用SecurityManager来完成,如果是这样,怎么做?

澄清/上下文:这是关于限制可以从JavaScript/Rhino调用的包的另一个问题的后续行动.接受的答案引用了关于如何做到这一点的博客条目,它需要两个步骤,第一个使用Rhino API(ClassShutter),第二个使用关闭反射和Class.forName().我想我可以使用SecurityManager更干净地完成第二步(了解SecurityManager,正如已经指出的那样,沿途是一个复杂的野兽).

总而言之,我希望(从代码,而不是设置文件)关闭Class.forName()以及对整个反射包的任何访问.

java security reflection sandbox securitymanager

20
推荐指数
2
解决办法
7626
查看次数

对象反射的安全风险是什么?

因此,经过几个小时的解决方法,目前在Google App Engine上禁用了Reflection的限制,我想知道是否有人可以帮助我理解为什么对象反射可能构成威胁.是因为我可以检查一个类的私有变量还是有其他更深层次的原因?

java security reflection code-access-security

20
推荐指数
1
解决办法
1万
查看次数