24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1172  |  回复: 1
本帖产生 1 个 翻译EPI ,点击这里进行查看
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

zcius

至尊木虫 (知名作家)

【答案】应助回帖

einsteinjw(金币+20, 翻译EPI+1): 2012-02-14 12:55:49
sltmac(金币+25): 2012-02-25 09:49:41
反思使得Java程序可以分析且修改自己。特别是,一个程序可以发现域变量的值,并修改它们[Forman 2005],[Sun 2002]。 Java反思API包括一个方法,使得通常无法访问的域在反思时可访问。下面的代码打印出 SomeClass 类的对象 someObject 各域的名称和值;


缺省的安全管理,防止一般不可访问的域在反思时可访问。此时,缺省的安全管理启动一个 java.security.AccessControlException。但是,java.lang.reflect.ReflectPermission 准许 suppressAccessChecks 覆盖该缺省行为。
例如,虽然一个对象通常不能访问另一个类的私有成员或调用另一个类的私有方法,但 java.lang.reflect 包中的API 可视语言定义的访问检查而允许这样做。然而要注意,这些访问检查只考虑了语言层次可见的直接调用者。因此,粗心的程序员会留下受不信任调用者进行特权升级攻击的机会。
2楼2012-02-14 06:16:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 einsteinjw 的主题更新
信息提示
请填处理意见