CSRFの深淵:ブラウザの「親切心」が招く認証の無効化と防衛アーキテクチャ
多くのエンジニアが「CSRF対策? SameSite=Lax を付ければ終わりだろ」と高を括る。だが、実戦のインシデントハンドリングの現場では、その「おまじない」を突破する手法や、そもそも仕様の隙間を突いた巧妙なセッションハイジャックが後を絶たない。
今日は、教科書には載っていない、ブラウザの通信スタックの「仕様」と、それに対するアーキテクチャレベルの防衛論を解き明かしていく。
—
1. 概念の裏側:ブラウザの自動送信挙動という「必然」
CSRF(Cross-Site Request Forgery)の根源は、ブラウザが持つ「ホスト名に関わらず、そのドメインに関連付けられたCookieをリクエストヘッダーに付与する」という仕様にある。
これはHTTPのステートレス性を補完するための設計だったが、今日においては「認証済み状態を攻撃者のリクエストに転用できる」という、最も強力な武器となっている。攻撃者は、被害者が認証済みであることを利用し、 タグの src 属性や
コメント