0

私はFirefoxアドオンに取り組んでいます。Gmailのコンテンツ スクリプトです。コンテンツ スクリプトでは、localhost で実行されているサーバーにリクエストを送信します。package.json ファイルで、次のように localhost からのクロスドメイン コンテンツを許可しました。

 "permissions": {
      "cross-domain-content": ["http://127.0.0.1:5000/"]
  },

それでも、アドオンを実行するたびに「混合アクティブ コンテンツの読み込みがブロックされました」というエラーが表示されます。Firefox 23 以降、混合コンテンツのブロックが有効になっていることを認識しています。明らかな解決策は、https を使用して localhost でサーバーを実行することですが、このサーバーをユーザーが簡単にインストールして実行できるようにしたいので、そのオプションは避けたいと思います。 Chrome は混合アクティブ コンテンツの読み込みもブロックしますが、アドオンの Chrome バージョンではこの問題は発生しません。

4

1 に答える 1

0

そのパーミッションを指定すると、Sandbox( workerSDK 内部用語ではcontent script、ドキュメントでは) は、複数のプリンシパル (または必要に応じて「オリジン」) を持つ新しい XMLHttpRequest コンストラクターを取得するだけになります。これは、same-origin-policy の評価方法のみを変更しますが、一般的なセキュリティと特に混合コンテンツ ポリシーの実装方法は変更しません。XHRつまり、お気づきのように、まだ https から http を実行することはできません。

コンテンツ スクリプトで使用できる回避策はありません。ただし、メイン スクリプトにメッセージを送信してリクエストを実行し、結果を (再びメッセージ パッシングを介して) コンテンツ スクリプトに返すこともできます。

バグを報告してください。少なくとも、この制限は文書化する必要があります。

個人的には引き上げには反対です。localhost混合コンテンツはセキュリティ上の問題ですが、多分を除いて、それをバイパスするコードはコードレビュー中に簡単に検出できるはずです. それとも持ち上げるだけlocalhostですか?しかし、その決定は、mozilla プラットフォーム、アドオン SDK、およびセキュリティ チーム次第です。

于 2013-09-06T16:20:30.907 に答える