ソケットを開き、アプレットがダウンロードしたローカルホスト(エンドユーザマシン)の をリッスンしているサーバと通信するには、アプレットが必要です。署名されたアプレットは、それらが発生した別のホストに接続できますか?
私はアプレットのセキュリティについて読んだものに反して、それも署名付きアプレット は、彼らが
私が認定している(それは完璧に動作する同じマシン上で)ダウンロードされた、そこから別のホストにソケットを開くことができないようですとが、私も、Javaポリシーファイルを変更しようとした
Java.lang.Exception: java.security.AccessControlException: access denied (java.net.SocketPermission 127.0.0.1:9999 connect,resolve)
:-selfcertを使用してアプレットは、jarsignerのを使用して、それに署名し、それが別のホストにソケットを開こうと、まだ、いつでも 、私が取得します署名付きアプレットそうする必要はありません。
grant codeBase "http://applethost:8080/socket" { permission java.security.AllPermission; permission java.lang.RuntimePermission "usePolicy"; };
sigendアプレットとの契約は、彼らは別のホストにconnetたりすることはできませんされて何?
@John、それはアクセス権java.security.AllPermissionを許可しているようです。それはまだ私がそれを働かせることができる唯一の方法です。私はアプレットにそのcodeBaseを印刷させました。非常にイライラしていますが、少なくともあなたのおかげで私はそれが実際にセキュリティに関連していて奇妙な問題ではないことを知っています。 – adilei
@John、私はそれが本当であるので、この答えを受け入れるつもりです。アプレットが別のホストにソケットを開くことは可能です。あなたが私のところにいることに興味があるなら、私はフォローアップの質問を設定するつもりです。乾杯、Adi。 – adilei
「プログラムでAllPermissionを許可する」方法はありますか?セキュリティ管理者が悪意のあるコードの実行を阻止するのは、コードが自分の望むことを実行するための許可を自分自身に与えることができるだけの場合です。それは可能でもありません! @ジョン、もしあなたがこれを読めば、Javaスタンダードが明示的に防止する何かを実装しようとすることによって、他の人々が間違ったトレイルを下るのを防ぐために最後の箇条書きを削除してください。それか、なぜ私が間違っているのか説明してください。ありがとう! –