2017-04-18 5 views
2

Class.java ?スクリーンショットのドキュメントに表示されているように特定のフィールドは反射アクセスからどのようにフィルタリングされますか? Javaは<strong>Class.java</strong>にフィールド<strong>民間最終のClassLoaderクラスローダ</strong>への反射のアクセスを制限する方法

私はlinkを見つけました。これは、リフレクションアクセスを制限するためにSecurityManagerを使用できますが、どのように使用することができるかを示しています。詳しく説明してください。

その後、私は特定のフィールドにのみアクセスを制限したいと考えています。

が見つかりましたsimilar question これは私のクラスでこれを実装することができますし、既にこれがjdkで実装されている理由について質問されているように知りたいですか?反射を使ってこのチェーンを壊すことはできますか?

+0

[こちら](http://stackoverflow.com/questions/14903318/hiding-my-security-key-from-java-reflection?answertab=votes#tab-top)があなたの質問に対する答えです。 –

+0

なぜこのプライベートフィールドを使用しますか?私はあなたの問題が解決できると確信していますが、JVMによって保護されているこのフィールドにはアクセスしないでください。 @パブロ:それは見つけることさえできないので、いくつかのフィールドはアクセス可能にすることはできないようです。 – CoronA

答えて

1

JVMによって保護されている特別なメカニズムはありません。すべてのアクセス許可を持っていても、通常はプライベートフィールドにアクセスできるようにすることはできますが、リフレクションを通じてアクセス権にアクセスすることはできません。私たち人間のために

、私たちができる最善のは、反射アクセスを防止SecurityManagerを使用し、それは秘密のものを維持するには、Javaに依存しないように、もっと重要なのは、私たちのソフトウェアを設計しています。私は明らかに不明確だったので、あなたの編集に答えるために(?)

「どのように私は私のクラスでこれを実装することができますか?」

できません。

"これはなぜjdkで実装されていますか?" これを回避するためにリフレクションを使用することはできません。

「反射を使用してこのチェーンを壊すことはできますか?」 いいえ、それは全体のポイントです。

関連する問題