2011-01-31 12 views
1

私は(コード署名された)Javaアプレットに「アクセス拒否(java.net.SocketPermission xxxx:443 connect_resolve)」というバグがありました。アプレットのメソッドをdoPrivileged()にラップして修正しました。バグは修正されているようですが、幸せな私は私の完全オリジナルの事情を理解し、私が塗布された溶液(後方、私は知っているが、時間のターンアラウンドは私が実際に問題を調査することはできませんでした)ことを確認したい。Javaアプレットサンドボックスセキュリティ、ローカル対外部アクセス

いただきましspecificalわたしを混乱させているのは、社内ネットワークのテストサーバーでアプレットを広範囲にテストし、ネットワークの外部のクライアントマシンからjavascriptの「保存」ボタンを試すまでこのエラーが発生しないことです。だからこの時点で、私はちょうど教育的な推測をしています:それはどのようにJavaアプレットのサンドボックスの仕組みが動作します。

これは本当ですか?クライアント・アプレットが同じドメイン・ネットワーク内のクライアント・マシンからWebサーバー・リソースにアクセスしている限り、サンドボックスの壁内にあると見なされますか?クライアントマシンがWebサーバーのローカルネットワークの外部にある場合、アプレットの要求はサンドボックスの壁の外であるとみなされ、doPrivilegedが必要ですか?それとも私が行方不明になっているという別の説明がありますか?

太陽のドキュメントやGoogleで、私の主張を具体的に証明したり、それを裏付けるものは何も見つかりませんでした。

+1

デフォルトでは、アプレットはダウンロード元のサーバーに接続することのみを想定しています。だから私はそれがあなたが特権的な行動を必要とした理由だと思うが、それは唯一の推測だ。 – biziclop

答えて

2

クライアントアプレットが同じドメインネットワーク内にあるクライアントマシンからWebサーバーリソースにアクセスしている限り、サンドボックスの壁内にあると見なされますか?

これは、サンドボックス化されたアプレットが独自のサーバーに「電話をかける」ことができるということを意味します。

クライアントマシンがWebサーバーのローカルネットワークの外部にある場合、アプレット要求はサンドボックスの壁の外であるとみなされ、doPrivilegedが必要ですか?

アプレットは、他のサーバーのリソースにアクセスするために信頼(デジタル署名+エンドユーザーが受け入れ)を必要とします。それをさらに複雑にするのはJavaScriptです。突然JREによって考慮されるべき「信頼できない」要素があります。 doPrivileged()メソッドでコードをラップすることにより、JSなどの何かによって呼び出されたとしても、このコードが信頼されることをJREに伝えます。

+0

私はそれが「所属する」Webサーバーと同じローカルネットワーク上にある場合、アプレットはこの信頼を引き受けますか?もともと私のウェブサーバと同じネットワーク上にある私の作業マシンから私たちのjavascriptの保存ボタンをクリックするとこのエラーは発生しません。しかし、Webサーバーと同じネットワーク上にない私の家庭のマシンからjavascriptの保存ボタンをクリックするとエラーが発生します。クイックヘルプありがとう、非常に感謝! – sross

+0

私たちの質問に対する答えは「はい」です.JREはそれがOKであると仮定します。私はJSのやりとりでさえ問題があるとは思わない(あなたの報告書に示唆されているように)。 –

+0

ワンダフル!私はこのすべてを把握するのに手伝ってくれてありがとう! – sross

関連する問題