HTTPレスポンスヘッダーチェッカー
公開URLを取得してHTTPステータスとレスポンスヘッダーを表示し、HSTS、CSP、X-Frame-Options、nosniffなどのセキュリティヘッダーを検査します。
スキームがない場合は https:// を補います。
HTTPヘッダーチェッカーとは?
このツールはURLにリクエストし、ステータス行とサーバーが返すすべてのレスポンスヘッダーを、curl -I のようにブラウザ上で表示します。リダイレクトをたどったうえで最終レスポンスを評価し、HSTS、Content-Security-Policy、X-Content-Type-Options、フレーミング保護、Referrer-Policy、Permissions-Policy、X-Powered-Byといった代表的なセキュリティヘッダーを確認します。
HTTPヘッダーチェッカーの使い方
- 公開URLを入力します。スキームを省略すると https:// が補われます。
- Checkを押します。
- 最終ステータスコード、たどったリダイレクト数、ヘッダーの全一覧を確認します。
- 表の下にあるセキュリティヘッダーのチェックリストを確認し、必要に応じて生のヘッダーをコピーします。
HTTPヘッダーチェッカーを使うべき場面
デプロイ後のキャッシュ、圧縮、CORS、セキュリティヘッダーの確認や、CDNが何を追加しているかの確認に使います。リクエストはCloudflareのデータセンターから汎用のユーザーエージェントで送られるため、地域別のコンテンツ、ボット対策、ログイン後のレスポンスは、実際に見えるものと異なる場合があります。非公開のイントラネットのURLは、手元のマシンでcurlを使ってください。
HTTPヘッダーチェッカーの仕組み
ブラウザは他のサイトのヘッダーを読むことが許されていないため、リクエストはAlgoKitのCloudflare Pages Function(/api/fetch-meta)が行います。URLを検証し(httpとhttpsのみ、認証情報なし)、DNS over HTTPSでホストを解決して、プライベート、ループバック、リンクローカル、CGNAT、クラウドメタデータのアドレスを拒否します。その後、Cookieなしで GET リクエストを送り、最大10回のリダイレクトを手動でたどり、全体で8秒のタイムアウトを設けます。返されるのはステータスコード、ヘッダー、HTMLから抽出した少数のフィールドのみで、Set-CookieのCookie値は伏せ字になります。セキュリティチェックは、返されたヘッダーに対してブラウザ内で実行されます。
一般的な使用例
- 本番環境でStrict-Transport-SecurityとContent-Security-Policyが設定されていることを確認する。
- 静的アセットのCache-ControlとETagヘッダーを確認する。
- サイトが報告しているサーバー、CDN、フレームワークを調べる。
- ヘッダーを見る前に、リダイレクトが正しいURLで終わっているか確認する。
セキュリティ注意事項
入力したURLはAlgoKitのサーバーが取得します。クエリ文字列にシークレットやワンタイムトークンを含むURLは確認しないでください。
よくある質問
ブラウザ自身でこれらのヘッダーを読めないのはなぜですか。
同一オリジンポリシーにより、クロスオリジンのレスポンスのうちJavaScriptに公開されるのは、CORSで許可された一部のヘッダーだけで、サーバーが許可した場合に限られます。サーバー側のリクエストなら、すべてのヘッダーを見られます。
ページの内容は保存されますか。
いいえ。関連ツールが使うメタデータを抽出するためだけにHTMLを最大512 KB読み取りますが、ログに残したり保存したりはしません。
社内のURLが拒否されるのはなぜですか。
サーバーサイドリクエストフォージェリを防ぐため、プライベートやローカルのアドレス(10.x、192.168.x、localhost、*.local、メタデータIP)と、それらに解決される名前はブロックされます。