Firefoxの同じOriginポリシーをオフにする必要のあるローカル調査ツールを開発しています(スクリプトアクセスの観点から、クロスドメインリクエストはあまり気にしません)。
具体的には、ホストドメイン内のスクリプトが、ドメインに関係なく、ページに埋め込まれたiframe内の任意の要素にアクセスできるようにします。
CORS FF拡張機能について言及した以前のQ&Aを知っていますが、それはCORSのみを許可し、スクリプトアクセスは許可しないため、必要なものではありません。
簡単に行えない場合は、FFを再コンパイルできるようにSOPを無効にするために変更できるFF srcコードの特定の部分を指摘する洞察もありがたいです。
最新のFirefox(build 36.0.1)で動作するHTTP応答にCORSヘッダーを追加するFirefox拡張機能があります2015年3月5日。私はそれをテストし、Windows 7とMavericksの両方で動作しています。動作させるための手順をご案内します。
1)拡張機能の取得
Xpiは here (作成者ビルド)または here (ミラー、更新されない場合があります)からダウンロードできます。
または、GitHubから files をダウンロードします。現在、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)動作させる
現在、拡張機能はデフォルトでは機能しません。拡張機能アイコンを拡張機能バーにドラッグする必要がありますが、心配する必要はありません。写真があります!
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へのアクセスは許可されていません に注意してください。
それを回避する方法があるかもしれませんが、それは質問の範囲の背後にあります。
about:config -> security.fileuri.strict_Origin_policy -> false
FFの同じOriginポリシーを具体的に無効にする方法を指定しなかったため、古い回答がダウン投票されたことに気付きました。ここで、より詳細な答えを示します。
警告:これにはFFの再コンパイルが必要であり、Firefoxの新しくコンパイルされたバージョンはenableSOPを再び使用できません。
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を完全に殺しました。
Firefoxでこの問題を解決するためにアドオンを作成しました(Chrome、Operaバージョンは近日公開予定です)。最新のFirefoxバージョン、美しいUI、およびJS正規表現をサポートします: https://addons.mozilla.org/en-US/firefox/addon/cross-domain-cors
2016年9月現在、このアドオンは無効にするのに最適ですCORS : https://github.com/fredericlb/Force-CORS/releases
オプションパネルでは、挿入するヘッダーと特定のWebサイトを自動的に有効にするように構成できます。
cors-everywhere アドオンはFirefox 68まで動作しますが、68以降は 'privacy.file_unique_Origin'を調整する必要があります-> false( 'about:config'を開くことで)を解決して ' CORS HTTP以外のリクエスト '導入された新しいCORS same-Originルールの場合。