問題タブ [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 - データを新しい RMI スレッドに自動的にコピーする方法は?
少しrmiクライアントサーバーアプリケーションを適応させています。私はいくつかのことを書いています:
特別なことは何もありませんが... 私は新しい RMISecurityManager に手を入れました。これは JNI メソッドを呼び出し、別のユーザーのアクセス許可をチェックします。
サーバークラスで私はそれをやっています:
このクラスは、サーバーのメイン スレッドで動作するようです。問題は、そのサーバークラスに接続してレジストリを検索しようとしたときです。私はその例外を受け取ります:
IMHO の意味は、スレッドが (暗黙的に) 作成され、NativeRMISecurityManager をデフォルトの SecurityManager として取得することです。
誰かがそれに関して何かアドバイスがありますか?
java - システムではなく、このスレッドに SecurityManager を設定するにはどうすればよいですか?
すべてのスレッドで基本的な RMISecurityManager を実行しているプログラムがあります。しかし、いくつかのスレッドをより細かく制御し、これらのスレッド専用に別の SecurityManager を設定したいと考えています。
どうやってやるの ?...これが可能なら!?
よろしくお願いします。
編集:解決策を見つけました。詳しくはこちらをご覧ください。
c# - SecurityManager.IsGranted() の動作
次のC#の動作を説明してもらえますか?私は CAS について学ぶためだけに小さなコンソール アプリケーションを作成しましたが、次のコード行がそのように機能する理由を理解できないようです。
どちらの SecurityManager.IsGranted() 呼び出しでも、出力は「true」です。
次に、次の行を追加するとします。
最初のデマンド コールはパスしますが、2 番目のデマンド コールは (予想どおり) SecurityException を引き起こします。
SecurityManager.IsGranted() 呼び出しが「roleX」権限に対して false を返さないのはなぜですか?
java - 現在のスレッドの Java リフレクションを無効にする
ある程度信頼できる Java コードを呼び出す必要があり、そのコードの実行中にリフレクションを使用する機能を無効にしたいと考えています。
これは SecurityManager で行うことができますか?
明確化/コンテキスト:これは、 JavaScript/Rhino から呼び出すことができるパッケージの制限に関する別の質問へのフォローアップです。受け入れられた回答は、その方法に関するブログ エントリを参照しており、2 つの手順が必要です。最初の手順は Rhino API (ClassShutter) を使用し、2 番目の手順はリフレクションと Class.forName() をオフにします。私は、SecurityManager を使用してその 2 番目のステップをよりクリーンに実行できると考えていました (指摘されているように、途中で複雑な獣である SecurityManager について学ぶこと)。
要約すると、(ファイルを設定するのではなく、コードから) Class.forName() とリフレクション パッケージ全体へのアクセスをオフにする必要があります。
java - アプレット内からモーダル ダイアログをシミュレートするにはどうすればよいですか?
setVisible(true) で、次のコードを呼び出してモーダル ダイアログを開始します。
これは、ほとんどのブラウザーでうまく機能します。ただし、Windows 用の Opera と Safari では、次の大きな厄介な例外に直面しています。
これらのブラウザーで偽のモーダル ダイアログを生成するための回避策はありますか?
java - sun.awt パッケージの非公開クラスにアクセスする [具体的には: FetcherInfo]
質問:
アプリにパフォーマンス上の問題があり、ボトルネックはsun.awt.image.ImageFetcher.run
で、プロファイラーから (それ以上) 意味のある情報を取得できません。そこで、ImageFetcher が行っている仕事を見てみるのもいいだろうと考えました。
すべてのジョブFetcherInfo
を保持するクラスにアクセスできませんでした。インスタンスImageFetcher
を取得するには、 を呼び出す必要があります。FetcherInfo
FetcherInfo.getFetcherInfo()
パッケージでクラスを作成しましたsun.awt.image
(私のプロジェクトでは、rt.jarをいじりませんでした)。
私がFetcherInfo
使用するために:
そして、私は例外を受け取ります:Exception in thread "IMAGE-FETCHER-WATCHER" java.lang.IllegalAccessError: tried to access class sun.awt.image.FetcherInfo from class sun.awt.image.FetcherDebug
また、スタック トレースは次を指しています。
同じ例外が発生しました:
したがって、誰でも次のいずれかの方法についてアイデアを持っています。
- ImageFetcher インスタンスを取得する
- どの画像がロードされているかを調べる
解決
問題は、クラスをsun.java.awt
パッケージに入れずに、パッケージで保護されたメンバーにアクセスするためにクラスをパッケージに入れたことrt.jar
であり、呼び出し側で例外がスローされImageFetcher.class
ました。
java - Java SecurityManager で Tomcat を使用しますか?
Ubuntu の Tomcat で実行される Web アプリケーションを作成しています。Ubuntu では、Tomcat はデフォルトで Java SecurityManager で実行するように構成されています。私自身の Web アプリケーション以外には、BIRT レポート エンジンなど、私自身に関連する有名なサード パーティの Web アプリケーションのみが存在します。
Web アプリケーションの 1 つに障害が発生したり、侵害されたりした場合、他のすべてのアプリケーションが損傷を受けることなくダウンする可能性があります。私が起こりたくないことは、侵害されたWebアプリがシステム自体を侵害することです。たとえば、 rm -r / を呼び出します
これを実現するには、Java セキュリティ マネージャを使用する必要がありますか? それとも、1 つの Web アプリを他のアプリから保護するだけでよいのでしょうか? 使用する予定のすべてのサード パーティ Web アプリケーションに対して .policy ファイルを作成する作業を防止したいと考えています。
java - 特定のファイルからすべてのプロパティを読み取れるように Java SecurityManager を構成する方法
現在、Tomcat で実行されている Nexus リポジトリ マネージャーのポリシー ファイルを作成しようとしています。
Nexus はファイルを読み取ろうとしWEB-INF/plexus.properties
(既にアクセス許可を付与しています)、そこからすべてのプロパティを読み取ろうとしているようですが、次のアクセス許可がないため失敗します。
この特定のファイルからすべてのプロパティを読み取れるように SecurityManager を構成するにはどうすればよいですか? これをポリシーファイルに追加すると:
システム プロパティを含め、すべてのプロパティを読み取り、変更する権限を付与しますね。
java - Resin で SecurityManager ポリシーファイルを使用して JSP パーミッションを付与するにはどうすればよいですか?
Resin 3.1.9 で SecurityManager を使用しようとしましたが、次の問題が発生しました: CodeSource.getLocation() は、コンパイルされた JSP に対して null を返します。
これは、ポリシー ファイルの grant 句で特定のコードベースを使用できないことを意味します。次に例を示します。
代わりに、ユニバーサル許可句を使用する必要があります。
JSP に適切な CodeSource を持たせる方法はありますか? サードパーティ ライブラリのアクセス許可を制限したいが、独自の JSP にはアクセス許可を与えたい。ポリシー ファイルで JSP を指定できない場合、これを行うことができない可能性があります。
編集: JSP をそのままデプロイするため、再コンパイルしないでください。それは問題と関係があるかもしれません。
java - JavaWebアプリケーションでSecurityManagerを使用する必要がありますか?
アプリケーションサーバープロセスを実行しているユーザーの権限でJavaWebアプリケーションを保護するだけで十分ですか、それとも適切なポリシーファイルでSecurityManagerを使用することも合理的ですか。
私は前者を使用し、後者は使用していませんが、一部のお客様は、すべてのサードパーティコンポーネントに明示的にアクセス許可を付与するSecurityManagerを使用して、そこに悪意のあるコードが潜んでいないことを確認したいと考えています。
私は、ResinのようないくつかのサーブレットコンテナがSecurityManagerを使用して速度を落とさないことを提案しているのを見てきました。何かご意見は?