問題タブ [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.

0 投票する
1 に答える
312 参照

security - JRuby の Java セキュリティ マネージャー

ユーザーが提供する ruby​​ コードをサーバー (Java スクリプト) で実行できるようにしています。jruby は ruby​​ のようにセーフ レベルをサポートしていないため、Java のセキュリティ マネージャーを使用することを考えています。

これは良い決断ですか?他の誰かがこれを実装しましたか? セキュリティ マネージャーを紹介してくれる良い記事/書籍/リソースはありますか?

0 投票する
1 に答える
1191 参照

java - JVM - Java 仮想マシンの破損

破損した JVM をチェックして検出するにはどうすればよいですか? Security Manager、Byte Code Verifier、および Class Loader が正常に動作していることを確認するにはどうすればよいですか?

0 投票する
2 に答える
1549 参照

java - Java Security Manager checkExec

JavaSecurityManagerでセキュリティチェックを実装しようとして問題が発生しました。

セキュリティマネージャのcheckExec()メソッドの目的を誤解しているようです。アプリケーションがコマンドラインから別のJavaアプリケーションを呼び出そうとすると呼び出されると思いましたが、そうではないようです。

これが私がしたいことです:私のカスタムセキュリティマネージャーを使用する呼び出しアプリケーションは、コマンドラインで「javaSomeApp」を実行します。セキュリティマネージャは、これで問題がないかどうかを確認し、適切なアクションを実行します。

これを達成するために、私は次のことを行いました。

  1. checkExecメソッドをオーバーライドするカスタムセキュリティマネージャーを作成しました。メソッドシグネチャはpublic void checkExec(String cmd)です。

  2. テストクラスSecurityTestを作成しました。

  3. SecurityTestは、カスタムセキュリティマネージャーをセキュリティマネージャーとして割り当てます。

  4. 次に、SecurityTestjava InvokeMeがコマンドラインで実行されます。

  5. カスタムセキュリティマネージャはこれを傍受して何かを実行します。

1から4は問題ありませんが、5は発生しません。カスタムセキュリティマネージャーが有効であり、SecurityTestに正常に割り当てられ、SecurityTestがInvokeMeを正常に実行していることを確認しました。ただし、私の識別能力を最大限に発揮するために、カスタムセキュリティマネージャーのcheckExec()メソッドが呼び出されることはありません。

どこが間違っているのですか?私がやろうとしていること(アプリケーションが呼び出されたときにセキュリティマネージャーに何かをさせますjava SomeApp)は可能ですか?

お時間をいただきありがとうございます。

編集:

テストを実行した結果のコードと出力を次に示します。これはラピッドプロトタイピングスタイルであり、「クランクアウトして後でクリーンアップする」スタイルコードであるため、美しくはなりません。

カスタムセキュリティマネージャー:

SecurityTest:

InvokeMe:

テスト出力:

checkExec()が呼び出されていることを示すものはありません。コンソール出力はなく、Verification.txtはファイルシステムのどこにも存在しません。(もちろん、このようなアクションを実行するときのセキュリティマネージャーサブクラスの動作がどうなるかはわかりません-おそらくそれは正常です。その場合は、私がコードの特定の行にヒットしています。)InvokeMeWasCalled.txtが存在するため、その部分は確実に機能しています。