クラスがその偽装を偽装することは可能ですか?たとえば、クラスA
はクラスB
メソッドにアクセスしようとします。 Class B
メソッドは、getClass().getName()
を使用して、クラスA
をチェックして、それが誰であるかを確認しようとします。偽装は可能ですか?例えばクラスC
はA
を偽装し、getclass().getName()
クラスB
をチェックに使用するようにしますか?クラスベースの偽装
クラスB
が以下のサンプルメソッドで有効なチェックのためにgetClass().getName()
を実装したい場合、以下のサンプルコードで正しく実装するにはどうすればよいですか?
public byte[] getStoragePrivateKey(String application) {
if (application.getClass().getName().equals("correctClass") {
// Allow access to Private Key.
} else {
// Access denied
}
}
上記の例では、システム内の内部鍵サーバのデータベースにアクセスしようとしているシステムでは、プラグインアプレットのシミュレーションです。
:
しかし、検証を避けるには、同じくらい簡単ですか! Java内でセキュリティを有効にする方法はたくさんありますが、最も簡単な方法はセキュリティポリシーです。私は堅牢な方法でアクセス制御を提供できるので、まずそこを見てみましょう。http://download.oracle.com/javase/1.4.2/docs/guide/security/permissions.html –