私はJavaセキュリティを初めて使いました。基本的な質問がある。悪意のあるコードがAccessController.doPrivilegedを実行しています
私の現在の理解があることである:あなたが行うことができます信頼されていないどのようなコードを制限する必要があるとき
- は、あなたがこれを実現することができる方法の一つは、カスタムセキュリティポリシーを使用することである、と信頼できないを実行していますコードは
Subject.doAsPrivileged
ブロックにあります。 - 信頼できないコードがファイルアクセスなどの昇格されたアクセス許可を必要とするコードを呼び出す必要がある場合は、
AccessController.doPrivileged
を使用してこれを実行できます。
私の質問は: AccessController.doPrivileged
通話自体を挿入するから悪意のあるコードを停止しますか?例えば
、私の場合:
- 私はサンドボックス環境では、ユーザー定義のGroovyスクリプトを実行していますよ。私はGroovyができることのほとんどを拒否する非常に制限的なポリシーを用意しています。
- しかし、これらのスクリプトでは、(オブジェクトをGroovyスクリプトに送り、「何か必要なときにはいつでも、このオブジェクトに対してこのメソッドを呼び出す」と言って)特権を必要とする特定のアクションを実行できるようにします。
- 昇格された特権を必要とするコードは、
AccessController.doPrivileged
ステートメントで実行されています。
GroovyスクリプトがAccessController.doPrivileged (some_malicious_code)
というコードを実行しないようにするにはどうすればよいですか?あなたは右のそれを得ることはありません