Defaults.Exposed

Defaults.Exposed修正 › クロスオリジン分離ヘッダー(COOP / CORP / COEP)

クロスオリジン分離ヘッダー(COOP / CORP / COEP) の直し方

他のウェブサイトがあなたのサイトとどう関われるか—ポップアップで開く、画像やスクリプトを埋め込む、リソースを自分のページに引き込む—を制御する3つの任意のブラウザ指示です。これらは基本の必須ではなく最新の強化策で、当社の採点では情報提供です。欠けていても評点は下がりません。ただし安全な2つは静かなフィッシングと帯域窃取のギャップを閉じ、慎重な買い手のITチームは整っていれば気づきます。

あなたのビジネスにとっての結論: この3つのうち2つは、巧妙なポップアップフィッシングを封じ、他サイトがあなたの画像やスクリプトをホットリンク(帯域を消費しデータを漏らしうる)するのを止めます。無料で、開発者に15分ほど、何も壊しません。3つ目は高度で、分析・フォント・埋め込みを壊しうるので—ほとんどの企業はオフにすべきです。どれも評点に影響しないので、慌てず磨きとして扱ってください。安全な2つをやり、特に必要でなければ危険なものは飛ばす。

これで失いかねないもの

なぜ重要か。 これらは将来を見据えたブラウザ強化ヘッダーです。当社の方法論では3つすべて情報提供です—0点で登録され決して評点を動かしません—サイトが正当に運用できる高度な制御であり、ひとつは誤用すると害をなしうるからです。あなたが立ち位置を把握できるよう報告します。安全な2つ(COOPとCORP)は本当に追加する価値があります。無料で速く、実在のポップアップフィッシングとリソース窃取のギャップを、何も壊さず閉じます。

これらは何か、平易に言うと

誰かがあなたのウェブサイトを訪れるとき、ブラウザはあなたのページを孤立して読み込むだけでなく、他のウェブサイトがあなたのとどう関われるかも決めます。別のサイトがあなたのサイトをポップアップで開いて保持し続けられるか? 別のサイトが手を伸ばしてあなたの画像やスクリプトを自分のページに埋め込めるか? 自分のサイトは特定の強力で締められたブラウザ機能を安全に使えるか?

この3つのヘッダーは、ウェブサイトがすべての訪問者のブラウザに送る短い目に見えない指示で、まさにそれらの問いに答えます。頭文字で知られています:

このうち2つ(COOPとCORP)は追加して安全で本当に役立ちます。3つ目(COEP)は高度で、不注意にオンにすると物事を壊しうります。

最初に知るべき最重要事項: 当社の採点では、3つすべて情報提供です。評点に影響しません。欠けていても費用はゼロです。あなたが立ち位置を把握し、簡単な勝ちを片付けられるよう報告するもので—数字に慌てさせるためではありません。

これが招きうる損失

これらは目玉ではなくニッチなリスクですが—実在し、修正は無料です。

それぞれの実体

COOP — Cross-Origin-Opener-Policy(安全、推奨)

別のウェブサイトがポップアップやwindow.openであなたのを開くと、2つの窓は通常互いへの参照を保持できます。そのつながりは悪用されえます。開いた側があなたの窓を操作・リダイレクトし、そのURLの断片を読み、あなたの本物のドメインを使って説得力のあるフィッシングを仕掛けられます。COOP: same-originはその関係を断ちます—あなたの窓は、オリジンをまたいで開いたものから分離されます。通常の閲覧・自分の内部リンク・普通のナビゲーションはまったく影響を受けません。

『良い』状態とは: Cross-Origin-Opener-Policy: same-origin

CORP — Cross-Origin-Resource-Policy(安全、推奨)

初期状態では、あなたの画像・スクリプト・その他のファイルはどこのどのサイトにも埋め込まれえます。CORP: same-originはブラウザに、あなたのリソースのクロスオリジン埋め込みを拒否するよう告げます—他サイトがあなたのアセットをホットリンクしたり自分のページに引き込んだりできなくなります。自分のサイトは自分のリソースをこれまでどおり読み込みます。外部サイトだけがブロックされます。

『良い』状態とは: Cross-Origin-Resource-Policy: same-origin。(他者に埋め込ませる意図でアセットを公開している場合—公開ロゴ、オープンなAPI—開発者はその特定のレスポンスでこれを緩められます。)

COEP — Cross-Origin-Embedder-Policy(高度、通常はオフのまま)

COEPは『クロスオリジン分離』を完成させます。COOPと組み合わさり、ページが読み込むすべてのリソースに明示的なオプトイン(CORSやCORP経由)を要求します。正しく行えば、特定の強力なブラウザ機能(SharedArrayBufferなど)が解放され、Spectre系攻撃へのもう一層の守りが加わります。しかし、読み込むすべてにオプトインを要求するため、オプトインするよう作られていない第三者ツール—分析・フォント・埋め込みウィジェット—を容易に壊します。ほとんどのウェブサイトはそれが解放する機能を必要とせず、壊れるリスクを負うべきではありません。

『良い』状態とは: それを必要とするまれなサイトには、Cross-Origin-Embedder-Policy: credentiallessrequire-corpより外部リソースを壊しにくい安全な値です。それ以外の全員には、欠けていて構わず、当社の報告は減点しません。

修正方法(無料・約15分)

IT担当やウェブ開発者にこれを渡してください。修正は無料です。 COOPとCORPの追加はサーバーやCDNの1行設定が2つで、ライセンスも継続費用もありません。オーナーへの唯一の指示:安全な2つをやり、テストせずにCOEPを有効にしない。

これらはレスポンスヘッダーで、サイトのレスポンスが生成される場所で設定します—CDN(例:Cloudflare)があれば最も簡単、なければウェブサーバーの設定で。

安全な2つのヘッダー(全員に推奨)

Cloudflare — Rules → Transform Rules → Modify Response Headers → Set:

Nginx:

add_header Cross-Origin-Opener-Policy   "same-origin" always;
add_header Cross-Origin-Resource-Policy "same-origin" always;

Apache:

Header always set Cross-Origin-Opener-Policy   "same-origin"
Header always set Cross-Origin-Resource-Policy "same-origin"

これらは追加して安全で、通常の機能を壊しません。展開後、いくつかのページを再読み込みし、サイトがこれまでどおり動作することを確認してください(するはずです)。

高度なヘッダー(特に必要な場合のみ)

まずステージングでテストせずにオンにしないこと。 COEPは分析・フォント・埋め込みウィジェットを壊しうります。

Cloudflare: Transform Rules → Cross-Origin-Embedder-Policy = credentiallessを設定。

Nginx:

add_header Cross-Origin-Embedder-Policy "credentialless" always;

require-corpより外部リソースを壊しにくいcredentiallessを使ってください。ステージングで徹底的にテストし、読み込みを止める第三者スクリプト・フォント・埋め込みに注意します。何かが壊れ、COEPが解放する機能を実際に必要としないなら、単にヘッダーを外せばいい—持たないことに罰則はありません。

プラットフォームの注記

よくある間違い

評点についての注記

完全に率直に:この3つの検査はどれも評点に影響しません。 当社の方法論では0点の情報提供として登録され、欠けていても決して何の費用もかかりません。安全な2つが安価で正真正銘の改善であること、そして全体像を見るのが有用であることから表に出すもので—守るべき数字があるからではありません。ここで何もしなくても、評点はまったく同じです。COOPとCORPを追加すれば、実在の(ニッチではあれ)ギャップをいくつか無料で閉じたことになります。それがこのページの正しい考え方です。守る数字ではなく、取る価値のある任意の磨きです。

よくある質問

評点に影響しないなら、わざわざやるべきですか?

2つはやるべき、1つはおそらくやらないほうがいい。COOPとCORPは無料で数分、サイトを壊さず—実在の(ニッチではあれ)攻撃経路を閉じるので、安価な衛生としてやる価値があります。COEPは高度で第三者ツールを壊しうるので、それが解放するブラウザ機能を特に必要としない限り、ほとんどの企業はオフにすべきです。3つともどちらにせよ評点を変えないので急ぐ必要はありません—次に開発者がサイトに入るときの片付けとして安全な2つを扱ってください。

技術に詳しくありません。対応しなければなりませんか?

個人的にも、緊急にも必要ありません。これらは情報提供なので、飛ばしても評点に悪いことは起きません。安全な2つを追加したければ『修正方法』の項をウェブサイトやCDNを管理する人に渡してください—1行設定が2つで、修正は無料です。明示的に伝えるべき唯一のものはCOEPです。テストせずにオンにしないよう伝えてください。分析や埋め込みウィジェットを壊しうるからです。

これらと評点に影響するヘッダーの違いは?

評点付きのウェブセキュリティヘッダー—HTTPSリダイレクト、HSTS、Content-Security-Policy、クリックジャッキング対策(X-Frame-Options)、MIMEスニッフィング対策—は、ありふれた広く悪用される攻撃から守るので、欠けると点を失います。このページの3つ(COOP、CORP、COEP)は、より新しく特化したブラウザ分離の制御です。良い習慣ですがまだ基準の期待ではないので、採点せずに報告します。評点付きのものを先にやり、これらはその上の磨きです。

COOPやCORPを追加するとサイトやパートナーの連携が壊れますか?

推奨設定(どちらも'same-origin')は安全になるよう設計されています。COOPはサイトがポップアップで開く窓へのつながりを断つだけ—通常の閲覧・自分のページ・普通のリンクは影響を受けません。CORPは*他の*サイトがあなたの画像やスクリプトを埋め込むのを止めるだけ—自分のサイトは自分のリソースをこれまでどおり読み込みます。他サイトに埋め込ませる意図のアセット(公開ロゴやAPI)を実際に配信しているなら、開発者はその特定のレスポンスにより寛容な設定を使えます。本当に壊れるリスクがあるのはCOEPで—テストするまでオフにしてください。

『ホットリンク』は実際どれくらいコストですか?

別のサイトが自分でコピーを持たず、あなたのサーバーから画像やスクリプトを直接埋め込むと、相手のページへのすべての訪問者がそれをあなたから—あなたの帯域代で、承認していない文脈であなたのアセットを表示しながら—ダウンロードします。小さな会社には破滅的なことはまれですが、無駄なお金が出ていくことで、CORP('same-origin')はそれをブラウザレベルで止めます。高度な(Spectre系)ブラウザ攻撃が頼る微妙なデータ漏えい経路も閉じます。

それぞれの『良い』状態はどんなものですか?

COOP:Cross-Origin-Opener-Policyヘッダーを'same-origin'に設定。CORP:Cross-Origin-Resource-Policyヘッダーを'same-origin'に設定。COEP:Cross-Origin-Embedder-Policyヘッダー—もし設定するなら、'credentialless'が'require-corp'より安全な値です。当社の報告はそれぞれの有無と設定値を記すだけで、欠けていても決して減点しません。COOPとCORPが整っているのを目指し、テスト済みでなければCOEPは欠けたままにしてください。