2009-03-09 16 views
0

私自身のClassLoaderを作成します。これは、アプレットのデフォルトのClassLoaderほど速く、よりダイナミックでなければなりません。どのようにjava.security.SecureClassLoaderクラスを拡張するのですか?

しかし、私は、私はメソッドを実装する方法を知らない:コードソースで有効な証明書がある場合

PermissionCollection getPermissions(CodeSource codesource) 

スーパー実装も何の権利を付与しません。

証明書自体を検証する必要がありますか、またはJava VMから検証済みで、ユーザーから受け入れている必要がありますか?

答えて

1

SunプラグインとWebStartは、getPermissionsを無効にして署名を確認し、証明書を受け入れるかどうかをユーザーに確認します。これは実装の詳細であり、将来変更される可能性があります。

+0

のように見えることができます? –

1

私が間違っている場合は私を修正してください - あなたが望むのは、あなたのアプレットの初期化のどこかでクラスローダーを作成し、そのローダーを使って後続のクラスをロードすることです。はいの場合、アプレットは署名されているため(ユーザーがブラウザーの警告をクリックした場合)、すべての許可を既に与えられています。あなたは、これはあなたが `SecureClassLoader`インスタンスではなく` getPermissions`方法自体の周りの日のプラグインとWeb Startの行動について話している、実装の詳細であると言うとき、あなたのgetPermissionsメソッドがそうしない、この

PermissionCollection p = new Permissions(); 
    p.add(new AllPermission()); 
    return p; 
+0

はいといいえ。classLoaderのjarファイルが受け入れられ、すべての権限を持ちます。これは他のjarファイルでは無効です。このファイルは操作できます。それはそれを確認せずにすべてを受け入れるセキュリティホールになるということです。 – Horcrux7

+0

それは正しいですが、カスタムクラスローダー自体が信頼できるjarファイル内にあります。したがって、すべてのアクセス権が与えられている場合、それらのアクセス権は論理的に読み込まれるクラスに '流れ'なければなりません。しかし、私はあなたのことを知っています - ファイルは、JREプラグイン自体をハッキングすることによってのみ操作できます。 – talonx

+0

と同様に、これらのクラスの悪意のあるバージョンを親ローダー(プラグインローダー)に入れます。しかしこれはまた、クライアントマシンが危険にさらされていることを意味します。 – talonx

関連する問題