問題タブ [java-security-manager]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
security - JRuby の Java セキュリティ マネージャー
ユーザーが提供する ruby コードをサーバー (Java スクリプト) で実行できるようにしています。jruby は ruby のようにセーフ レベルをサポートしていないため、Java のセキュリティ マネージャーを使用することを考えています。
これは良い決断ですか?他の誰かがこれを実装しましたか? セキュリティ マネージャーを紹介してくれる良い記事/書籍/リソースはありますか?
java - JVM - Java 仮想マシンの破損
破損した JVM をチェックして検出するにはどうすればよいですか? Security Manager、Byte Code Verifier、および Class Loader が正常に動作していることを確認するにはどうすればよいですか?
java - Java Security Manager checkExec
JavaSecurityManagerでセキュリティチェックを実装しようとして問題が発生しました。
セキュリティマネージャのcheckExec()メソッドの目的を誤解しているようです。アプリケーションがコマンドラインから別のJavaアプリケーションを呼び出そうとすると呼び出されると思いましたが、そうではないようです。
これが私がしたいことです:私のカスタムセキュリティマネージャーを使用する呼び出しアプリケーションは、コマンドラインで「javaSomeApp」を実行します。セキュリティマネージャは、これで問題がないかどうかを確認し、適切なアクションを実行します。
これを達成するために、私は次のことを行いました。
checkExec
メソッドをオーバーライドするカスタムセキュリティマネージャーを作成しました。メソッドシグネチャはpublic void checkExec(String cmd)
です。テストクラスSecurityTestを作成しました。
SecurityTestは、カスタムセキュリティマネージャーをセキュリティマネージャーとして割り当てます。
次に、SecurityTest
java InvokeMe
がコマンドラインで実行されます。カスタムセキュリティマネージャはこれを傍受して何かを実行します。
1から4は問題ありませんが、5は発生しません。カスタムセキュリティマネージャーが有効であり、SecurityTestに正常に割り当てられ、SecurityTestがInvokeMeを正常に実行していることを確認しました。ただし、私の識別能力を最大限に発揮するために、カスタムセキュリティマネージャーのcheckExec()メソッドが呼び出されることはありません。
どこが間違っているのですか?私がやろうとしていること(アプリケーションが呼び出されたときにセキュリティマネージャーに何かをさせますjava SomeApp
)は可能ですか?
お時間をいただきありがとうございます。
編集:
テストを実行した結果のコードと出力を次に示します。これはラピッドプロトタイピングスタイルであり、「クランクアウトして後でクリーンアップする」スタイルコードであるため、美しくはなりません。
カスタムセキュリティマネージャー:
SecurityTest:
InvokeMe:
テスト出力:
checkExec()が呼び出されていることを示すものはありません。コンソール出力はなく、Verification.txtはファイルシステムのどこにも存在しません。(もちろん、このようなアクションを実行するときのセキュリティマネージャーサブクラスの動作がどうなるかはわかりません-おそらくそれは正常です。その場合は、私がコードの特定の行にヒットしています。)InvokeMeWasCalled.txtが存在するため、その部分は確実に機能しています。