2
私はスクリプト言語としてRhinoを使用したいと考えていますが、スクリプトが何かを実行するのを防ぐためにレイヤーを追加したいとします。RhinoのJavaオブジェクトへの呼び出しを傍受する機能のようなセキュリティマネージャを実装することは可能ですか?
Javaでは、私たちが防止したいapiを見つけたら、クラスを検証して不平を言うことができます。例えば、ユーザーがファイルシステムに触れたいdnotあなたは1等のjava.io.Fileへの呼び出しをスポット場合は文句を言う場合
同等のクラスファイルの検証
- それはいったん1は、スクリプトを確認することができ、位相がありますロードされたが実行される前に?
- evalに文字列が与えられたときに同じコールバックが呼び出されますか?
これは、各スクリプトまたはスクリプトレットが一度しかチェックされず、それ以降は信頼されるので、これが望ましいでしょう。すべてのJavaメソッドの
ランタイム傍受は
- を呼び出すRhinoは、関数呼び出しを実行しようとするたびに、いくつかのコールバックを呼び出していますか?
- Javaクラスにアクセスしようとしているときなど、特定のapisにのみこのチェッカーをインストールできますか?
これは
iはサンドボックスに希望するものを行うためにJavaオブジェクトへの呼び出しを防止する他の方法があります...他の真のJavaScriptのオブジェクトが障壁なしで実行できるようになりますか?
サイSecurityController
イムかなり確実とcallWithDomain()メソッドを試す必要がありますありません。
この質問にはいくつかの重複があります。[Rhino for Javaをサンドボックスで使ってJavascriptを実行するにはどうすればよいですか?](http://stackoverflow.com/questions/93911) – McDowell
@mP: "セキュリティを実装することは可能ですか?マネージャーのような機能がRhinoのJavaオブジェクトへの呼び出しを傍受する "これは..カスタム** SecurityManager'の仕事のように聞こえる**別の言い方をすれば、なぜ実装するのか(明らかな)あなたのニーズに適したセキュリティマネージャー? –
@AM SMはグローバルであるため、Rhino自体で実行されているjのチェックを行いたいだけです。 Seconldy SMはjava.io.Fileのようなものを守るだけで、他のクラスを保護しません。私は自分の "他のクラス"にSM呼び出しを追加したいだけで、私はそれらをRhinoに拒否することができます。 –