Special HTTP headers
ワードリスト&ツール
位置を変更するヘッダ
IPソースを書き換える:
X-Originating-IP: 127.0.0.1
X-Forwarded-For: 127.0.0.1
X-Forwarded: 127.0.0.1
Forwarded-For: 127.0.0.1
X-Forwarded-Host: 127.0.0.1
X-Remote-IP: 127.0.0.1
X-Remote-Addr: 127.0.0.1
X-ProxyUser-Ip: 127.0.0.1
X-Original-URL: 127.0.0.1
Client-IP: 127.0.0.1
X-Client-IP: 127.0.0.1
X-Host: 127.0.0.1
True-Client-IP: 127.0.0.1
Cluster-Client-IP: 127.0.0.1
Via: 1.0 fred, 1.1 127.0.0.1
Connection: close, X-Forwarded-For
(ホップバイホップヘッダを確認)
位置を書き換える:
X-Original-URL: /admin/console
X-Rewrite-URL: /admin/console
ホップバイホップヘッダ
ホップバイホップヘッダは、リクエストを処理しているプロキシによって処理および消費されるように設計されたヘッダであり、エンドツーエンドヘッダとは異なります。
Connection: close, X-Forwarded-For
HTTPリクエストスマグリング
Content-Length: 30
Transfer-Encoding: chunked
キャッシュヘッダ
サーバーキャッシュヘッダ:
応答の
X-Cache
には、リクエストがキャッシュされていない場合は値miss
、キャッシュされている場合は値hit
が含まれる場合がありますヘッダ
Cf-Cache-Status
でも同様の動作が見られますCache-Control
はリソースがキャッシュされているかどうかを示し、次回リソースが再度キャッシュされる時間を示します:Cache-Control: public, max-age=1800
Vary
は通常はキーにならないヘッダを キャッシュキーの一部として扱う 追加のヘッダを示すために応答でよく使用されます。Age
はオブジェクトがプロキシキャッシュに格納されている時間(秒単位)を定義します。Server-Timing: cdn-cache; desc=HIT
はリソースがキャッシュされていることも示します
ローカルキャッシュヘッダ:
Clear-Site-Data
: 削除すべきキャッシュを示すヘッダ:Clear-Site-Data: "cache", "cookies"
Expires
: 応答が期限切れになる日付/時刻を含む:Expires: Wed, 21 Oct 2015 07:28:00 GMT
Pragma: no-cache
はCache-Control: no-cache
と同じWarning
:Warning
一般的なHTTPヘッダには、メッセージのステータスに関する問題の情報が含まれます。応答には複数のWarning
ヘッダが表示される場合があります。Warning: 110 anderson/1.3.37 "Response is stale"
条件付きリクエスト
これらのヘッダを使用するリクエスト:
If-Modified-Since
およびIf-Unmodified-Since
は、応答ヘッダLast-Modified
に異なる時間が含まれている場合にのみデータで応答されます。If-Match
とIf-None-Match
を使用した条件付きリクエストは、Etag 値を使用して、データ(Etag)が変更された場合にのみウェブサーバーが応答の内容を送信します。Etag
はHTTP応答から取得されます。Etag 値は通常、応答の内容に基づいて計算されます。たとえば、
ETag: W/"37-eL2g8DEyqntYlaLp5XLInBWsjWI"
は、Etag
が 37 バイトの Sha1 であることを示しています。
レンジリクエスト
Accept-Ranges
: サーバーがレンジリクエストをサポートしているかどうか、およびどの単位でレンジを表現できるかを示します。Accept-Ranges: <range-unit>
Range
: サーバーが返すべきドキュメントの一部を示します。If-Range
: 指定されたETagまたは日付がリモートリソースと一致する場合にのみ満たされる条件付きレンジリクエストを作成します。互換性のないバージョンのリソースから2つの範囲をダウンロードするのを防ぐために使用されます。Content-Range
: フルボディメッセージ内の部分メッセージが属する場所を示します。
メッセージ本体情報
Content-Length
: リソースのサイズ(バイト単位の10進数)。Content-Type
: リソースのメディアタイプを示しますContent-Encoding
: 圧縮アルゴリズムを指定するために使用されます。Content-Language
: 観客向けに意図された人間の言語を説明し、ユーザーが自分自身の好みの言語に従って区別できるようにします。Content-Location
: 返されたデータの代替位置を示します。
ペンテストの観点からは、この情報は通常「無意味」ですが、リソースが401または403で保護されており、この情報を取得する方法が見つかる場合は、これは 興味深い かもしれません。
たとえば、HEADリクエストでの Range
と Etag
の組み合わせは、ページの内容をHEADリクエスト経由で漏洩させる可能性があります:
ヘッダ
Range: bytes=20-20
を含むリクエストと、ETag: W/"1-eoGvPlkaxxP4HqHv6T3PNhV9g3Y"
を含む応答がある場合、バイト20のSHA1がETag: eoGvPlkaxxP4HqHv6T3PNhV9g3Y
であることが漏洩しています。
サーバー情報
Server: Apache/2.4.1 (Unix)
X-Powered-By: PHP/5.3.3
コントロール
Allow
: このヘッダーは、リソースが処理できるHTTPメソッドを通知するために使用されます。たとえば、Allow: GET, POST, HEAD
と指定されることがあり、これはリソースがこれらのメソッドをサポートしていることを示します。Expect
: クライアントがリクエストが正常に処理されるためにサーバーが満たす必要がある期待を伝達するために使用されます。一般的な使用例は、Expect: 100-continue
ヘッダーを含むもので、これはクライアントが大きなデータペイロードを送信する意図があることを示します。クライアントは、送信を続行する前に100 (Continue)
応答を待ちます。このメカニズムは、サーバーの確認を待つことでネットワークの使用を最適化するのに役立ちます。
ダウンロード
HTTPレスポンスの
Content-Disposition
ヘッダーは、ファイルを inline(ウェブページ内)で表示するか、attachment(ダウンロード)として扱うかを指示します。たとえば:
セキュリティヘッダー
コンテンツセキュリティポリシー(CSP)
pageContent Security Policy (CSP) Bypass信頼されたタイプ
CSPを介して信頼されたタイプを強制することで、アプリケーションはDOM XSS攻撃から保護されます。信頼されたタイプは、特定に作成されたオブジェクトのみが危険なWeb API呼び出しで使用され、確立されたセキュリティポリシーに準拠していることを保証し、その結果、JavaScriptコードをデフォルトでセキュリティで保護します。
X-Content-Type-Options
このヘッダーは、XSS脆弱性を引き起こす可能性があるMIMEタイプスニッフィングを防ぎます。ブラウザがサーバーで指定されたMIMEタイプを尊重することを保証します。
X-Frame-Options
クリックジャッキングに対抗するために、このヘッダーは、ドキュメントが<frame>
、<iframe>
、<embed>
、または<object>
タグに埋め込まれる方法を制限し、すべてのドキュメントに埋め込み許可を明示的に指定することを推奨しています。
Cross-Origin Resource Policy (CORP) と Cross-Origin Resource Sharing (CORS)
CORP は、ウェブサイトが読み込むことができるリソースを指定するために重要であり、クロスサイトリークを軽減します。一方、CORS は、より柔軟なクロスオリジンリソース共有メカニズムを可能にし、特定の条件下で同一オリジンポリシーを緩和します。
Cross-Origin Embedder Policy (COEP) と Cross-Origin Opener Policy (COOP)
COEP と COOP は、クロスオリジンの分離を可能にするために重要であり、Spectre のような攻撃のリスクを大幅に低減します。それらは、クロスオリジンのリソースの読み込みとクロスオリジンウィンドウとのやり取りをそれぞれ制御します。
HTTP Strict Transport Security (HSTS)
最後に、HSTSはブラウザがサーバーとの通信を安全なHTTPS接続のみで行うように強制するセキュリティ機能であり、プライバシーとセキュリティを向上させます。
参考
Last updated