問題タブ [securitymanager]
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.
java - リフレクションセキュリティ
Method
、、オブジェクトの呼び出しをField
許可しないことでリフレクションセキュリティを実施するにはどうすればよいですか?SecurityPolicyファイルまたは他の何か?Constructor
setAccessible(true)
通常、スタンドアロンJavaアプリケーションの場合、SecurityManager
登録されていません。
これを使っていますSystem.setSecurityManager(new SecurityManager());
このアプローチは、メソッドを呼び出す場合に機能します。
jar全体を強制したい、またはjarを使用するクライアントコードが呼び出しを許可されていないsetAccessible(true);
より良いアプローチはありますか?
ありがとう。
java - サーバーでめったに使用されないセキュリティマネージャ?
SO に関する最近の質問により、Java Security Manager に関する古い回答にたどり着きました。その回答のこの行に関する私の質問:
ただし、セキュリティ マネージャーはパフォーマンスに影響を与え、サーバー側ではほとんど使用されません。
誰かがこれを支持したり、反論したりできますか? カスタムまたはデフォルトのセキュリティマネージャが常に存在し、コンテナは常にそれを使用していると思いました。
java - mockito vs 封印されたパッケージ
セキュリティ上の制約が厳しいプロジェクトに取り組んでいます。要件は、ジャーを密閉することです。
jar を封印したため、多くの junit-tests が次のエラーで失敗しました。
問題は Mockito によって引き起こされているようです:
外部の密閉された jar からのクラスを「モック」および「スパイ」します。Mockito によって生成された「モック クラス」は、「モック クラス」と同じパッケージを持っています。
依存関係 jar のパッケージは封印されているため、テストされた jar は同じパッケージ内にクラスを作成できません (URLClassLoader は、同じパッケージが異なる封印された jar から使用されていないことを確認します)。
junit テスト用に特定の SecurityManager .policy ファイルを追加しようとしましたが、依存関係によってパッケージ内に既に封印されているクラスを許可するプロパティが見つかりませんでした。
また、URLClassLoader には、封印違反チェックを削除するオプションがないようです。
使用する Mockito のバージョンは 1.8.5 です。最新バージョン (1.9.5) を使用しようとしましたが、エラーは修正されませんでした。
誰かがアイデアを持っているなら...
java - クラスをサンドボックス化する方法は?
人々がクラス形式でコードをアップロードできるWebサイトがあるとします。そのクラス内で実際に実行できることをどのように制限できますか?
java - Javaで安全でないコードを実行する(セキュリティマネージャを無効にする)方法はありますか?
「これをしてはいけない」という答えを投稿しないでください。これを本番コードで使用する予定はありませんが、ハッキングを楽しむためだけに使用します。
この質問に答える際に、私は楽しみのために任意の安全でないJavaコードを実行したいと思いました。問題のコードには、Javaのリーフノードだけを見つけることが含まれますTreeMap
。
以下のコードを実行すると、
この質問によると、私System.setSecurityManager(null)
はこれらの制限のほとんどを回避するために使用できます。しかし、クラスがロードされるときにエラーがポップアップするため、これを行うことはできません。
セキュリティマネージャを無効にした後、リフレクションを使用してやりたいことがすべてできることをすでに知っています。しかし、それはコードをはるかに醜くします。コアJava開発者は、たとえば、パッケージ化できない場合、どのように単体テストを作成しjava.util
ますか?
私も試し-Djava.security.manager=...
ましたが、これをに設定するとJVM初期化エラーが発生しnull
、他に何に設定できるかわかりません。何か案は?
java - JAVA SecurityManager - 複数のアクションを持つカスタム BasicPermission
次のポリシー ファイルを作成しました。
アクセスするために、次のパラメーターを使用して JVM を実行します。
私のコードは次のようになります。
すべてがうまく機能しますが、「保存」アクションをチェックせずに、もう少し細かくしたいと思います。
ポリシーで「使用」と「保存」の両方を指定しているにもかかわらず、これが機能しないようです。そのような機能を提供するにはどうすればよいですか?
どうもありがとう、ヴラド
java - JNLP ファイルを実行すると AccessControlException がスローされる
このjnlp アプリケーションを実行しようとしています。ただし、次のセキュリティ例外が引き続き発生します。
Java コントロール パネル (OSX 10.8.3) でセキュリティ設定を変更しようとしましたが、無効になっているようで、変更できません ([ブラウザで Java コンテンツを有効にする] オプションをチェックできますが、次の場合にリセットされます)。 [適用] をクリックします)。これを次の図に示します。
Java セキュリティ マネージャをバイパスして jnlp アプリケーションを実行できる別のメカニズムはありますか?
アップデート:
Java を再インストールした後、ようやく Java コントロール パネルのセキュリティ オプションを変更できるようになりました (特別なことは何もせず、最初から再インストールしただけです)。残念ながら、jnlp アプリケーションを実行すると、エラーを表示せずに黙って終了します。この問題は、jdk 1.8 を使用している (jnlp アプリケーションには javafx が必要なため) という事実に関連している可能性があり、これは単なるプレビュー バージョンです (そして、最近の OSX はあまり Java を好まないようです...)。私の最善の推測ですが、完全に確信することはできません。