web-dev-qa-db-ja.com

Firefoxの同一生成元ポリシーを無効にする

Firefoxの同じOriginポリシーをオフにする必要のあるローカル調査ツールを開発しています(スクリプトアクセスの観点から、クロスドメインリクエストはあまり気にしません)。

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

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

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

100
Yuchen Zhou

最新の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)動作させる

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

  • 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へのアクセスは許可されていません に注意してください。

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

78
about:config -> security.fileuri.strict_Origin_policy -> false
31
Niklas

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を完全に殺しました。

7
Yuchen Zhou

Firefoxでこの問題を解決するためにアドオンを作成しました(Chrome、Operaバージョンは近日公開予定です)。最新のFirefoxバージョン、美しいUI、およびJS正規表現をサポートします: https://addons.mozilla.org/en-US/firefox/addon/cross-domain-cors

enter image description here

6
Tan Mai Van

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

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

enter image description here

3
Khado Mikhal

cors-everywhere アドオンはFirefox 68まで動作しますが、68以降は 'privacy.file_unique_Origin'を調整する必要があります-> false( 'about:config'を開くことで)を解決して ' CORS HTTP以外のリクエスト '導入された新しいCORS same-Originルールの場合。

0
ob.yann