使い方
「判定」タブで、ページの Origin、メソッド、リクエストヘッダーの名前、Content-Type の値、認証情報の有無を入れます。
プリフライト(OPTIONS)の応答と、本番の応答(GET などの実際の応答)のヘッダーを貼り付けます。ブラウザの開発者ツールの「ネットワーク」タブからコピーできます。
「通る」「通らない」と、ヘッダーごとの ✓ ✗ と直し方を確かめます。ヘッダーを貼らないときは、必要な応答の欄が「判定できません」と示します。
「設定を作る」タブで、許可する Origin・メソッド・ヘッダーを選ぶと、応答ヘッダーと nginx・Apache・Express・Next.js の設定例を出します。
できること
プリフライトが要るかの判定
メソッドが GET・HEAD・POST 以外か、ヘッダーが安全なもの(Accept など)以外か、Content-Type が application/x-www-form-urlencoded・multipart/form-data・text/plain 以外かを、Fetch Standard の定義に沿って見ます。
ヘッダーごとの CORS チェック
Access-Control-Allow-Origin(要求の Origin との一致。スキーム・ポート・ホスト名の違いを分けて説明)、Allow-Credentials、Allow-Methods、Allow-Headers(* の扱いと Authorization の例外)、Expose-Headers、Vary: Origin を、行ごとに判定します。
一般的な失敗の説明
* と認証情報の併用、Origin の末尾のスラッシュ、null の扱い、値が複数ある Allow-Origin、Set-Cookie を Expose-Headers に書いた場合などを、直し方と一緒に示します。
nginx・Apache・Express・Next.js の設定例
許可する Origin を照合して一致したものだけを返す書き方を出します。プリフライトは 204 で返します。Express は cors パッケージを使わない素の書き方です。
こんなときに
- fetch で「has been blocked by CORS policy」と出て、原因を Access-Control-Allow-Origin から確かめたい
- JSON を送る POST で、プリフライトが失敗する理由(Content-Type・Authorization)を知りたい
- 認証情報(Cookie)を付けた要求が、* を返したサーバーで失敗する理由を知りたい
- 複数のサイトの Origin を許可する書き方を、nginx や Express で作りたい
- Vary: Origin が必要かを、キャッシュの観点から確かめたい
対応形式
入力
対応状況
| 機能 | 対応 | 補足 |
|---|---|---|
| プリフライトが要るかの判定(Fetch Standard の定義) | 対応 | — |
| ヘッダーごとの CORS チェックと直し方 | 対応 | — |
| nginx・Apache・Express・Next.js の設定例 | 対応 | — |
| URL を入れて実際の応答ヘッダーを取得する | 非対応 | ネットワークには接続しません。応答ヘッダーを貼り付けてください |
| ブラウザの実際の動作を再現する | 非対応 | 仕様に基づく判定です。ブラウザごとの細かな違いは確かめられません |
| 認証の仕組みや API の中身の検査 | 非対応 | CORS の応答ヘッダーだけを見ます |
| ブラウザ以外(curl など)からの要求の制限 | 非対応 | CORS はブラウザが読み取りを制限する仕組みです |
制限・注意事項
- 判定はヘッダーの内容だけで行います。実際にブラウザでページを開いて確かめたときの結果とは、キャッシュ・拡張機能・ブラウザの版によって差が出ることがあります。
- プリフライトの結果を使い回す時間(Access-Control-Max-Age)の上限は、ブラウザごとに異なります。このツールは上限の数値を断定しません。
- 要求の Origin は http・https(または null)だけを受け付けます。応答の Access-Control-Allow-Origin は、文字どおりに要求の Origin と比べます(末尾のスラッシュや大文字・小文字の違いも不一致)。
- 入力の上限は、1 欄あたり 2 万字、ヘッダーは 1 つの欄に 200 行までです。
- 設定例のドメインは例です。サーバーの構成(プロキシ・CDN・フレームワーク)によっては、設定する場所が異なります。
- スマートフォンでも使えますが、長いヘッダーの貼り付けは PC 推奨です。
プライバシーと安全性
貼り付けたヘッダー・Origin・設定は、お使いのブラウザの中だけで処理されます。サーバーへ送信・保存されることはありません。
よくある質問
CORS エラーはなぜ出るのですか?
Access-Control-Allow-Origin に * を書いたのに、認証付きで失敗するのはなぜですか?
プリフライト(OPTIONS)とは何ですか?
複数のサイトの Origin を許可するには?
Vary: Origin はなぜ必要ですか?
関連ツール
CSP Studio
CSP のヘッダーや meta タグを貼り付けると、unsafe-inline・unsafe-eval・ワイルドカード・object-src や base-uri の欠落などを重さ(高・中・低)つきで指摘し、改善案を示します。生成と hash 計算もできます。
Cookie / Set-Cookie Studio
Cookie ヘッダーや Set-Cookie を貼り付けると、属性(Expires・Max-Age・Domain・Path・Secure・HttpOnly・SameSite・Partitioned)を表にし、確認したい点を示します。フォームから Set-Cookie ヘッダーと各言語の書き方も作れます。
curl解析・コード生成
Chrome や Firefox の「cURL としてコピー」を貼ると、メソッド・URL・ヘッダー・Cookie・本文を表にし、12 種類のコードへ変換します。リクエストは送らず、すべてブラウザの中で処理します。Authorization や Cookie は共有前に伏せられます。
Cache-Control Studio
Cache-Control を貼り付けると、ブラウザと CDN がそれぞれ何秒キャッシュするか、使う前に再検証が要るかを示し、no-store と max-age の併用などの矛盾を指摘します。用途に合う書き方も作れます。
HTML 構造・見出し・画像・リンク診断
ページの HTML を貼り付けるだけで、SEO とアクセシビリティの基本項目(見出し構成・メタタグ・OGP・画像の alt・リンク・構造化データ)を一覧で確認できます。検索結果と SNS でのおおよその見え方もプレビューします。
robots.txt テスター
robots.txt を貼り付けると、指定した URL が Googlebot や AI クローラーに「許可」か「ブロック」かと、どの行のルールが効いたかがすぐ分かります。つづりの誤りや Google が無視する命令も指摘します。
最終更新: