0

ブラウザーとして使用しているスタンドアロンの XULRunner アプリを開発しました。アプリに URL を表示していません。しかし、アクセスしたサイトが SSL を使用しているかどうか (つまり、URL が で始まるかどうか) を確認したいと思いますhttps://。ユーザーがいるサイトのセクションが安全かどうかを示すメッセージをユーザーに表示したいと思います。そして、それを行う方法は、URL が SSL を使用しているかどうかを検査することだと思います。いくつかの検索を行いましたが、これまでのところ成功していませんが、あきらめていません. どんな提案でも大歓迎です。

いくつかの変更を行ったので、私のonSecurityChange()方法を以下に示します。

onSecurityChange: function(aWebProgress, aRequest, aState) { 
  if((aState & Components.interfaces.nsIWebProgress.STATE_IS_SECURE) == 0) {
    document.getElementById("lblConnectionStatus").setAttribute("value", "Insecure Connection");
  } else {
    document.getElementById("lblConnectionStatus").setAttribute("value", "Secure Connection");
  } 
  return 0; 

}

ただし、安全でないページから安全なページに移行しても変わらないようです。アクセスしているアプリケーションに問題があるかどうかを確認するために、Yahoo と Hotmail で試してみましたが、同じように動作します。

私が間違っているかもしれないことへのポインタはありますか? 前もって感謝します。

4

1 に答える 1

1

それよりも少し複雑です。ページ自体が SSL 経由で読み込まれたとしても、プレーンな HTTP 経由で読み込まれたスクリプトを埋め込むことができます。これは、安全でないスクリプトが他のすべてを危険にさらす可能性があるため、ページ全体が安全ではないことを意味します。そのため、既存のメカニズム、つまりbrowser.securityUIプロパティ(でも利用可能tabbrowser) に依存する必要があります。ここでの回答は、ページの SSL ステータスを確認する方法を説明しています。

ただし、SSL ステータスがいつ変更されるかを知りたい場合があります。そのためには進行状況リスナーを使用します。このメソッドonSecurityChange()は、関連するすべての変更に対して呼び出されます。パラメーターを確認する必要があります (接続は、ゼロ以外の値を指定したaState場合にのみ安全です)。aState & Components.interfaces.nsIWebProgress.STATE_IS_SECURE

于 2012-05-24T08:14:09.860 に答える