частные методы доступны - PullRequest
0 голосов
/ 29 января 2010

В C # или Java, даже если мы помечаем методы как закрытые, к ним все равно можно получить доступ, используя отражение или динамическую загрузку класса. Конечно, чтобы узнать его, нам нужно знать имя метода, но мне было интересно, насколько безопасно приложение, предназначенное для защиты частной базы данных, банковского счета и т. Д., Которое все еще можно взломать с помощью отражения. Мой вопрос здесь заключается в том, почему Java Reflection API разрешен доступ к переменным / методам, даже если они являются частными?

1 Ответ

3 голосов
/ 29 января 2010

Даже если бы отражения не было, получение данных из виртуальной машины было бы довольно тривиально для решительного хакера. Существование рефлексии является подтверждением создателей этих языков, что а) это чрезвычайно удобно в некоторых особых случаях и б) частные методы никоим образом не обеспечивают безопасность. Вместо этого для защиты личных данных, таких как информация о банковском счете, следует использовать дополнительные средства косвенного обращения, такие как хранение данных в удаленной базе данных и предоставление механизма запросов с агрессивным списком ACL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...