PHP Conference Japan 2025
LT(5分)

CSRFの脆弱性を作り込んでみよう

yasuaki640 yasuaki640 yasuaki640
1

PHPやLaravelで開発したことのある人なら、「CSRF」という単語について聞いたことはありませんか?

例えば、Laravelで新しく作ったフォームを開いたら、「419 | Page Expired」のようなエラーを見たことがある人は多いのではないでしょうか?
(そして、とりあえず @csrf というおまじないを書いたらエラーが直った経験もありませんか?)

CSRF (クロスサイトリクエストフォージェリ) は脆弱性の一種で、
これを対策しないと、ユーザーが意図しない操作(例えば、商品の購入など)を強制的に実行させられてしまう可能性があります。

じゃあどういうコードを書くとCSRF脆弱性を仕込めるのでしょうか?
このトークでは、サンプルのフォームにCSRF脆弱性を仕込み、実際に攻撃した後、脆弱性を仕込まずに済む対策について紹介します。

アウトライン (案)

  1. CSRFって何?
  2. こんな場面で見たことありませんか?
  3. CSRF攻撃って結局どういう攻撃なの?
  4. どういうコードで起こり得るの? (映像による実演)
  5. じゃあどうすればCSRF脆弱性を作り込まずに済むの?