CORSテスター
CORS Tester
指定した生成元からブラウザが送るプリフライトとOriginを載せたGETを実際に送り、Fetch標準の規則でどのヘッダーが止めたのかを説明します。
コンソールに出るCORSの失敗は、足りなかったヘッダーの名前は言いますが、理由はほとんど言いませんし、ブラウザが実際に送ったリクエストはあなたのコードにあるものとは違います。ここでは、指定した生成元からブラウザが送るはずのプリフライトを送り、続けてそのOriginを載せたGETを送り、その結果をFetch標準の規則に照らして読みます。
このリクエストは、こちらのサーバーが代わりに送ります。サーバーに渡るのは入力した URL・オリジン・メソッド・ヘッダー名だけで、ブラウザの Cookie やログイン状態は一緒に送られません。サーバーは公開アドレスにしか接続せず、プライベートアドレスや内部アドレスへの接続は拒否します。
使い方
URLと生成元を入れます
生成元は、そのリクエストがどこから出るかです。呼び出す側のページであって、APIではありません。この2つを逆にすることが、検査結果とブラウザの動きが食い違ういちばん多い理由です。
実際に使うメソッドとヘッダーを入れます
プリフライトは、単純でないリクエストのときにしか起きません。それを引き起こすのは`Content-Type: application/json`や`Authorization`ヘッダーなので、それらを抜いたまま検査すると、実際には出さないリクエストを検査することになります。
どの規則で落ちたかを読みます
結果は、生成元が許可されていない、メソッドが挙げられていない、ヘッダーが挙げられていない、ワイルドカードの生成元に資格情報を付けている、といった具体的な検査項目を名指しします。漠然とした失敗としては報告しません。
よくある質問
ここでは通るのに、ブラウザではまだ遮断されます。
メソッド、ヘッダー、資格情報のモードが、コードの送っているものと厳密に一致しているかを確かめてください。またサーバーが、クッキーやユーザーエージェントによってレスポンスを変えていないかも確かめてください。これはサーバーから走るので、あなたが持っているセッションに依存するレスポンスとは違うものが返ります。
`Access-Control-Allow-Origin: *`がクッキーと一緒に効かないのはなぜですか。
標準が禁じているからです。`credentials: 'include'`のときは、生成元をそのまま返し、`Access-Control-Allow-Credentials: true`も付けなければなりません。資格情報付きのワイルドカードは、不具合ではなく設計として拒否されます。
これはブラウザの中で走りますか。
いいえ。サーバーから走ります。CORSが遮断するリクエストを、ブラウザは出せないからです。つまり見えているのは公開されたレスポンスであって、あなたのクッキーもネットワーク上の位置も入っていません。
社内のアドレスも検査できますか。
できません。リクエストは、あなたのネットワークに届かないサーバーから出ます。そのネットワークの中でしか解決しないアドレスは、CORSの設定がどうであれ失敗します。
ここから渡せます
CSP作成
CSP Builder
案内に沿った入力か違反レポートからContent-Security-Policyを組み立て、各ディレクティブの意味を説明します。
セキュリティヘッダー診断
Security Header Scan
サイトのHSTS・CSP・フレーム・リファラ・権限の各ヘッダーを採点し、何を足すべきかを示します。
パスワード強度チェック
Password Strength Meter
そのパスワードを破るのにどれだけかかるかを見積もり、弱くしている型を名指しします。
TOTPコード生成
TOTP Code Generator
TOTPの秘密鍵から今の6桁コードを残り時間つきで出し、2段階認証の設定確認に使えます。
次の一手
このツールが出したものをそのまま受け取れる道具です。
CSP作成
CSP Builder
案内に沿った入力か違反レポートからContent-Security-Policyを組み立て、各ディレクティブの意味を説明します。
HTTPリクエスト作成
HTTP Request Builder
GET/POST/PUT/PATCH/DELETE/HEADをヘッダーと本文まで指定して送り、ステータス・ヘッダー・本文・所要時間を表示します(CookieとAuthorizationは転送しません)。
HTTPヘッダー確認
HTTP Header Inspector
URLを取得して、レスポンスヘッダーの全文・リダイレクトの連鎖・所要時間・使われた圧縮方式を表示します。
セキュリティヘッダー診断
Security Header Scan
サイトのHSTS・CSP・フレーム・リファラ・権限の各ヘッダーを採点し、何を足すべきかを示します。
CSVクリーニング
CSV Cleaner
セルの空白を落とし、見出しを揃え、数値と日付の書式を直し、列数の合わない行を報告します。
CSV結合(VLOOKUP)
CSV Join
キー列で2つの表を内部・左・右・外部結合し、相手のいない行も一覧します。