パスワードを忘れた? アカウント作成
431886 journal

jjkingの日記: SecurityManager について

日記 by jjking

内部で任意の URL からファイルを持ってくる servlet を作ったのだが、接続先 URL のチェックをしないと危険だということで Java の SecurityManager にやらせてみようということになった。
Servlet エンジンは Tomcat4.x なので catalina.policy というファイルにエントリを書いて、catarina を -security オプションつきで走らせれば SecurityManager が有効になるらしい。テストとして、次のようなエントリを書いて myapp 以下の servlet を動かしたところ、確かに外部サイトに接続にいったときに "access denied" で却下される。いい感じだ。

grant codeBase "file:${catalina.home}/webapps/myapp/-" {
};

ここでひとつ疑問が生じた。やりたいことは、ある特定のサイトのみ接続不可としてその他はOKというセキュリティポリシーなのだが、どう書くと実現できるだろう?すべてのサイトが OK というのは以下でよいようだ。

grant codeBase "file:${catalina.home}/webapps/myapp/-" {
        permission java.net.SocketPermission "*", "connect";
};

しかし、ここから特定のサイトのみ除くというような記述方法が見当たらない。接続する可能性のあるサイトを全部列挙しないといけないのか?あるいは自分で SecurityManager を作らないといけないのか? ...困った

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

アレゲは一日にしてならず -- アレゲ研究家

読み込み中...