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


110

私は、Firefoxの同じ生成元ポリシーをオフにするように要求するローカルの調査ツールを開発しています(スクリプトアクセスに関しては、クロスドメインリクエストについては特に気にしません)。

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

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

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


4
開発者にとっては興味深いことです。同じ生成元ポリシーは、開発者ではなくユーザーのセキュリティのために設計されているため、特定のサイトのスクリプトが制限を通過できるようにする必要があります。しかし、開発者も人間なので、個人情報を失う可能性もあります。
ダニューブセーラー2013

1
現時点では不可能だと思います
。FirefoxBugzillaの

唯一の良い解決策は、ドメインに基づいてプラグインによってヘッダを注入することである。stackoverflow.com/a/44093160/956397他Everthingは安全ではないです...
PiTheNumber

回答:


82

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

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は許可されないことに注意してください。

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


1
あなたは、設定することで無効化HTTP / HTTPS混在したコンテンツを保護することができますsecurity.mixed_content.block_active_contentはfalsesecurity.mixed_content.block_display_contentする。一部のセキュリティを無効にしていることに注意してください。これは一時的な解決策です。
bufh 2015年

4
このアドオンの作成者として、私は実際にそれがこの特定の質問を解決するとは確信していません。言及を得ることは素晴らしいことです。
spenibus 2015

2
@spenibus -あなたが署名した上で、あなたのアドオンを取得する必要があります-私はそれをインストールすることはできません:( - support.mozilla.org/en-US/kb/...
ピーターAjtai

3
@PeterAjtai Mozillaは、私が目にする私を困らせようと懸命に努力を続けています。レビュー待ちaddons.mozilla.org/en-US/firefox/addon/cors-everywhereうまくいけば自動署名されるはずです。
spenibus

1
アドオンをインストールするには、about:configでxpinstall.signatures.requiredfalseに設定します。それは私のために働いた。
user2345998 2016

42
about:config -> security.fileuri.strict_origin_policy -> false

21
@Niklasに感謝します。ただし、これはfileuriの同じ生成元ポリシーのチェックを無効にするだけだと思います。おそらくローカルのWeb開発テストに使用されます。私がしようとしているとき、それはまだ、ドメインAにJavaScriptからドメインBとiframe内のアクセスDOMノードに私を停止する
Yuchen周

127
これは何もしません
vknyvz '06 / 06/23

2
私のFirefox(開発者)バージョンで動作することを確認しました:40。ヒント@Niklasをありがとうございます。
bufh

11
これは特にデバッグ用の設定であり、ローカルファイルの他のローカルファイルへのアクセスを制御します(trueに設定するとローカルファイルは同じフォルダーまたはサブフォルダー内のローカルファイルにのみアクセスでき、falseに設定するとローカルファイルはすべてのローカルファイルにアクセスできます) 。出典
Jon Egerton

4
それはない何かを、私の場合、それが上務めた文書からのアクセスローカルリソースに私を可能にするfile://プロトコル。コンピュータサイエンティストは、「何でも」という言葉にもっと重点を置く必要があります。すべてをテストしていない場合(テストしていない場合)は、発言をより保守的にするようにしてください。「役に立たない」という言葉の使用についても同様です。
午前

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を完全に殺すためにここでやった。


今日のように、ライン499、Gitのミラー:github.com/mozilla/gecko-dev/blob/...
kamranicus

9

私はFirefoxでこの問題を克服するためのアドオンを作成しました(Chrome、Operaバージョンはまもなくリリースされます)。それは、美しいUIとJS正規表現をサポートする最新のFirefoxバージョンで動作しますhttps : //addons.mozilla.org/en-US/firefox/addon/cross-domain-cors

ここに画像の説明を入力してください


1
ありがとうございます。さらに、同様のCORS-Everywhere Extensionもあります。
nachtigall 2018

3

のとして2016年9月、このアドオンは無効にすることをお勧めしCORShttps://github.com/fredericlb/Force-CORS/releases

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

ここに画像の説明を入力してください


1
wiki.mozilla.org/Add-ons/Extension_Signingから:Firefox 48:デスクトップ版Firefoxのリリースバージョンとベータバージョンでは、署名なしの拡張機能を上書きなしでインストールできません。このアドオンの署名付きバージョンが見つかりませんでした。
FelixM 2017年

1
@FelixMこれを行う方法は次のとおり
2016/08/14

@FelixM Firefox Developer Editionでは、「about:config」フラグにオプション「xpinstall.signatures.required」ブール値があります。ただし、この拡張機能のバージョン0.1.1は、Firefox Developer Edition 58.0(Quantum)と互換性がありません。
alxndr

2

CORS-どこにでも解決するために「:(「設定について」オープンによる)>偽- 「privacy.file_unique_origin」を調整する68 I必要性後のFirefox 68までの私のためにアドオン作品、CORSがHTTPない要求新しいCORS同一生成元のルールは」導入されました。


1

ではabout:configアドオンcontent.cors.disable(空の文字列)。


1
これはテストされましたか?私が読んでいることから、この設定はtrue、に設定するとすべてのCORS要求が失敗するように設計されていますが、falseその他の値については何も述べていません。「Firefoxでは、CORSを無効にする設定はcontent.cors.disableです。これをtrueに設定するとCORSが無効になるため、その場合は常に、CORSリクエストは常にこのエラーで失敗します。」 developer.mozilla.org/en-US/docs/Web/HTTP/CORS/Errors/...
stealththeninja

Firefox 68.7以降、この設定は利用できません。
Gunnar Bernstein
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.