インフラ用語集へ戻る

セキュリティ・認証 / Web/認証

HttpOnlyとは

HttpOnly cookie attribute。JavaScriptからCookieを読みにくくする属性です。

用語集内のカードを見る

詳細な図解

JavaScriptからCookieを読ませない制御
Set-CookieHttpOnly属性を付ける
ブラウザ保存Cookieを保存する
JavaScriptdocument.cookieでは読めない
リクエスト送信HTTPリクエストには送信される
  • XSS時の窃取を減らす
  • CSRF対策ではない
  • フロント実装影響を見る

この記事で学べること

HttpOnlyを、定義だけで終わらせず、現場で出てくる場面、確認材料、見落としやすい点、関連語とのつながりまで順に確認できます。

  1. HttpOnlyを読むときの前提
  2. XSS時の窃取を減らす
  3. CSRF対策とは役割が違う
  4. フロント実装への影響を見る
  5. 変更証跡と引き継ぎ

実務メモ

XSS時のCookie窃取軽減とフロント実装影響を分ける

どこで効くか

HttpOnlyは認証Cookie、セッションCookie、管理画面、BFF構成で効きます。XSS影響軽減、ログイン方式変更、JavaScriptがCookieを読めない不具合で確認します。

残す証跡

証跡にはCookie名、Set-Cookieヘッダー、HttpOnly有無、JS参照要件、document.cookie確認結果、ログイン/API呼び出し結果、CSRF対策を残します。

避けたい誤解

HttpOnlyはCSRF対策ではありません。JavaScriptから読めなくしてもブラウザは条件に合えばCookieを送ります。既存フロントがCookie値を読む実装だと画面やAPI呼び出しが壊れます。

まず確認すること

  • 認証CookieのHttpOnlyを確認する
  • JSがCookie値を読んでいないか確認する
  • SameSiteやCSRF対策も確認する

HttpOnlyを読むときの前提

HttpOnlyは、JavaScriptからCookieを読みにくくするCookie属性です。XSSが起きたときに、document.cookie経由でセッションIDを盗まれるリスクを下げます。

実務では、認証Cookie、セッションCookie、フロントエンドが読む必要のあるCookie、XSS影響、CSRF対策との違い、Set-Cookieでの付与状態を確認します。

証跡には、対象Cookie名、Set-Cookieヘッダー、HttpOnly有無、JavaScriptからの参照要件、認証フロー、ブラウザ保存結果、確認日時を残します。

XSS時の窃取を減らす

HttpOnlyが付いたCookieは、通常JavaScriptのdocument.cookieから読めません。XSSが起きても、セッションIDをそのまま抜かれるリスクを減らせます。

ただし、XSSがある状態では、利用者のブラウザから不正操作を実行される可能性は残ります。HttpOnlyはXSS対策そのものではなく、被害を限定する属性です。

  • 認証CookieにHttpOnlyがあるか確認する。
  • document.cookieで読めないことを確認する。
  • XSS対策と別に管理する。

CSRF対策とは役割が違う

HttpOnlyはJavaScriptからの読み取りを抑えますが、ブラウザが条件に合うリクエストへCookieを送る動作は止めません。CSRF対策にはSameSiteやCSRFトークンが必要です。

HttpOnlyを付けたからCSRFが防げる、という説明は誤りです。重要操作では認可、再認証、CSRFトークン、Origin確認なども確認します。

  • SameSiteとCSRFトークンを確認する。
  • 重要操作の認可チェックを見る。
  • HttpOnlyの説明範囲を明確にする。

フロント実装への影響を見る

フロントエンドがCookie値を読んで画面表示やAPIヘッダーを組み立てている場合、HttpOnlyを付けると動かなくなります。認証情報をJSで読む設計自体を見直す機会にもなります。

アクセストークンをCookieに入れるのか、メモリに置くのか、BFFで扱うのかにより適切な属性が変わります。既存実装の前提を確認します。

  • JSがCookie値を読んでいないか確認する。
  • API認証方式との整合を見る。
  • BFFやセッション方式の前提を確認する。

変更証跡と引き継ぎ

HttpOnly対応では、Cookie名、用途、付与理由、JS参照要件、ログイン影響、CSRF対策との関係を残します。セキュリティ強化に見えても、実装依存で画面が壊れることがあります。

引き継ぎでは、アプリ担当、認証基盤担当、セキュリティ担当、関連語としてCookie、Set-Cookie、SameSite、XSS、CSRFを残すと確認しやすくなります。

  • Set-Cookieの変更前後を保存する。
  • ログインとAPI呼び出しを確認する。
  • JS参照廃止の判断を記録する。

関連語

同じ主要カテゴリの用語

セキュリティ・認証の学習順

同じ主要カテゴリの用語をまとめて確認できます。現在の用語を起点に、前後の用語へ進むと文脈を保ったまま読み進められます。

InfraEngKit内の関連機能