クロスオリジンポリシーチェッカー
Cross-Origin-Opener-Policy (COOP)、Cross-Origin-Embedder-Policy (COEP)、およびCross-Origin-Resource-Policy (CORP) ヘッダーをチェックします。これらのヘッダーはSharedArrayBufferおよび高分解能タイマーに必要なブラウザー分離機能を有効にします。セキュリティスコアとセットアップガイダンスを取得します。
クロスオリジンポリシーチェッカーの使い方
- 1URLを入力してクロスオリジン分離ヘッダーをチェックします。
- 2COOP、COEP、およびCORPヘッダーがフェッチされて分析されます。
- 3各ヘッダー値はセキュリティの影響と共に説明されます。
- 4クロスオリジン分離ステータスと推奨事項が表示されます。
Zenovayアナリティクス
関連ツール
よくある質問
COOP、COEP、CORPヘッダーとは何ですか?▾
これら3つのヘッダーはブラウザでのクロスオリジン分離を有効にするために連携します:(1)Cross-Origin-Opener-Policy(COOP)—ページがクロスオリジンポップアップとブラウジングコンテキストグループを共有できるかどうかを制御します。(2)Cross-Origin-Embedder-Policy(COEP)—ページによって読み込まれたすべてのリソースが明示的なクロスオリジン許可を持つことが必要です。(3)Cross-Origin-Resource-Policy(CORP)—特定のリソースを読み込める人を制御します。一緒に、Spectreのような副次的な攻撃を防ぎます。
クロスオリジン分離とは何で、なぜ必要ですか?▾
クロスオリジン分離は、高分解能タイマー(performance.now())、SharedArrayBuffer、およびWASMスレッドを有効にするブラウザセキュリティ状態です。Spectre脆弱性が発見された後、タイミング攻撃に悪用される可能性があるため、これらは無効化されました。ページはCOOP: same-originとCOEP: require-corp(またはcredentialless)の両方を設定すると、クロスオリジン分離になります。クロスオリジン分離がない場合、高性能Webアプリケーション(WebAssembly、オーディオワークレット、並列計算)は制限されます。
COEP のrequire-corpとcredentialistの違いは何ですか?▾
COEP: require-corpは、すべてのクロスオリジンリソースがCORSヘッダーまたはCross-Origin-Resource-Policyヘッダーを介して明示的にオプトインすることを要求します。これは厳密ですが破損しています。これらのヘッダーを持たないサードパーティリソースは読み込みに失敗します。COEP: credentialless(より新しい)は、認証情報(クッキー、クライアント証明書)を送信せずにクロスオリジンリソースを読み込み、CORS/CORPヘッダーなしで読み込むことを許可しますが、認証コンテキストを削除します。Credentialistはデプロイが簡単ですが、ブラウザサポート(Chrome 96+、Firefox 119+)が必要です。
OAuthとSSOを壊さずにCOOPをデプロイするにはどうしますか?▾
OAuthフローはオープナーウィンドウと通信する必要があるポップアップウィンドウを使用します。COOP: same-originを使用すると、window.opener経由でのこの通信がブロックされます。ソリューション:(1)中間ステップとしてCOOP: same-origin-allow-popupsを使用します。(2)OAuthコールバック通信のためにwindow.openerの代わりにpostMessage()を使用します(最新のOAuthライブラリはこれを行います)。(3)OAuthプロバイダーがポップアップを開く場合、ドメインでもCOOPを設定していることを確認してください。Google、GitHubなど多くのプロバイダーはこれをサポートしています。
Cross-Origin-Resource-Policy(CORP)は何のためのものですか?▾
CORPは、他のウェブサイトが<img>、<script>、または<iframe>を介してプライベートリソースを埋め込むことを防ぎます。CORPがない場合、任意のウェブサイトはyourapp.com/user/avatar.pngで認証済みイメージを読み込み、それから情報を学ぶ(例:ユーザーがログインしているかどうか、クロスオリジンイメージプローブ経由)。プライベートユーザーデータリソースでCORP: same-originを設定します。どこにでも埋め込まれる必要がある公開CDNアセットでCORP: cross-originを設定してください。