JavaScriptクイズ
JavaScript からのリクエストで使われる Origin ヘッダーは、主に何をサーバーへ伝えるものですか?
解説
Origin ヘッダーは、リクエストがどのオリジン(プロトコル + ホスト + ポートの組み合わせ)から発生したかをサーバーに伝える HTTP リクエストヘッダーです。パスやクエリ文字列は含まれません。たとえば https://example.com/page 上の JavaScript が https://api.example.net へリクエストを送ると、ブラウザは自動的に Origin: https://example.com を付与します。ブラウザが Origin を付与するのは主に次の場合です。クロスオリジンリクエスト(CORS)同一オリジンでも POST / PUT / DELETE などの副作用を伴うリクエスト同一オリジンの GET や単純なページ遷移には付きません。Origin は Forbidden header に分類されており、JavaScript(XMLHttpRequest や fetch)から値を書き換えたり削除したりすることはできません。ブラウザだけが設定するため、サーバー側はこの値をある程度信頼できます。サーバーは Origin の値を使って、主に2つの判断を行います。CORS: Access-Control-Allow-Origin と照合し、クロスオリジンアクセスを許可するか決定するCSRF 対策: 想定外のオリジンからの状態変更リクエストを拒否するただし、curl のようなブラウザ外のクライアントは Origin を自由に設定できるため、Origin ヘッダーだけに依存したセキュリティは不十分です。CSRF トークンなど他の対策と組み合わせて使います。