126

私は、Firefox の同一オリジン ポリシーをオフにする必要があるローカル リサーチ ツールを開発しています (スクリプト アクセスに関しては、クロス ドメイン リクエストはあまり気にしません)。

より具体的には、ホスト ドメインのスクリプトが、ドメインに関係なく、ページに埋め込まれた iframe の任意の要素にアクセスできるようにしたいと考えています。

CORS FF 拡張機能について言及した以前の Q&A は承知していますが、CORS のみを許可し、スクリプト アクセスは許可しないため、それは私が必要としているものではありません。

簡単に実行できない場合は、FFを再コンパイルできるように、SOPを無効にするために変更できるFF srcコードの特定の部分を指摘する洞察もいただければ幸いです。

4

8 に答える 8

89

2015 年 3 月 5 日にリリースされた最新の Firefox (ビルド 36.0.1 ) で動作する HTTP 応答に CORS ヘッダーを追加する Firefox 拡張機能があります。テストしたところ、Windows 7 と Mavericks の両方で動作しています。それを機能させるための手順をご案内します。

1) 拡張機能の取得

xpi は、ここ(作成者のビルド) またはここ (ミラー、更新されていない可能性があります) からダウンロードできます。

または、GitHub からファイルをダウンロードします。現在は Firefox Marketplace にもあります:ダウンロードはこちら. この場合、[インストール] をクリックするとアドオンがインストールされ、手順 4 にスキップできます。

xpi をダウンロードした場合は、ステップ 3 にジャンプできます。GitHub から zip をダウンロードした場合は、ステップ 2 に進みます。

2) xpi のビルド

zip を解凍し、「cors-everywhere-firefox-addon-master」フォルダーに移動し、すべてのアイテムを選択して zip する必要があります。次に、作成した zip の名前を *.xpi に変更します。

注: OS X GUI を使用している場合は、隠しファイルが作成される可能性があるため、コマンド ラインを使用することをお勧めします。

3) xpi のインストール

xpi を Firefox にドラッグ アンド ドロップするか、[about:addons] に移動し、右上隅の歯車をクリックして [ファイルからアドオンをインストール] を選択し、.xpi ファイルを選択します。ここで、Firefox を再起動します。

4) 機能させる

現在、拡張機能はデフォルトでは機能しません。拡張アイコンを拡張バーにドラッグする必要がありますが、心配する必要はありません。写真あります!

  • Firefox メニューをクリックします。
  • カスタマイズをクリック

p1

  • CorsE をバーにドラッグします
  • 次に、アイコンをクリックします。アイコンが緑色の場合、CORS ヘッダーが HTTP 応答に追加されます

p2

5) 動作するかどうかのテスト

jQuery

$.get( "http://example.com/", function( data ) {
  console.log (data);
});

JavaScript

xmlhttp=new XMLHttpRequest();

xmlhttp.onreadystatechange = function() {
    if (xmlhttp.readyState == 4) {
        console.log(xmlhttp.responseText);
    }
}

xmlhttp.open("GET","http://example.com/");
xmlhttp.send();

6) 最終的な考慮事項

https から http への変換は許可されていないことに注意してください。

それを回避する方法があるかもしれませんが、それは質問の範囲外です。

于 2015-03-17T10:04:22.960 に答える
55
about:config -> security.fileuri.strict_origin_policy -> false
于 2013-08-28T18:22:15.347 に答える
12

FFの同じオリジンポリシーを具体的に無効にする方法を指定しなかったため、古い回答が反対票を投じられていることに気付きました。ここで、より詳細な回答を提供します。

警告: これには FF の再コンパイルが必要であり、新しくコンパイルされたバージョンの Firefox ではSOP を再び有効にすることはできません。

Mozilla の Firefox のソース コードを調べて、src ディレクトリにある nsScriptSecurityManager.cpp を見つけてください。ここにリストされているものを例として使用します: http://mxr.mozilla.org/aviarybranch/source/caps/src/nsScriptSecurityManager.cpp

関数の実装 nsScriptSecurityManager::CheckSameOriginURI に移動します。これは 2016 年 3 月 2 日時点で 568 行目です。

その関数が常に NS_OK を返すようにします。

これにより、SOP が完全に無効になります。

@Giacomo によるブラウザー アドオンの回答はほとんどの人にとって役立つはずであり、私はその回答を受け入れましたが、私の個人的な研究ニーズ (TL; ここでは説明しません) には十分ではなく、他の研究者が何をする必要があるかを考えますSOPを完全に殺すためにここにしました。

于 2016-03-02T23:29:37.030 に答える
3

2016年 9 月現在、このアドオンはCORSを無効にするのに最適です: https://github.com/fredericlb/Force-CORS/releases

オプション パネルでは、挿入するヘッダーと特定の Web サイトを自動的に有効にするように構成できます。

ここに画像の説明を入力

于 2016-09-09T21:00:16.943 に答える