私有方法可访问

时间:2010-01-29 05:31:29

标签: reflection

在C#或Java中,即使我们将方法标记为私有,仍然可以使用反射访问它们,或者动态加载类。当然,我们必须知道方法名称才能掌握它 - 但是,我想知道一个应用程序的安全性是多少,这个应用程序用于保护私人数据库,银行帐户等仍然可以使用反射进行攻击。 我的问题是为什么Java Reflection API允许访问变量/方法,即使它们是私有的?

1 个答案:

答案 0 :(得分:3)

即使没有反射,从虚拟机中获取数据对于坚定的黑客来说也是微不足道的。反思的存在是这些语言的创造者的承认:a)在某些特殊情况下它非常方便; b)私人方法决不能确保安全。相反,为了保护诸如银行账户信息之类的私人数据,应该使用进一步的间接方式,例如将数据存储在远程数据库中,并为查询机制提供积极的ACL。