PHPやLaravelで開発したことのある人なら、「CSRF」という単語について聞いたことはありませんか?
例えば、Laravelで新しく作ったフォームを開いたら、「419 | Page Expired」のようなエラーを見たことがある人は多いのではないでしょうか?
(そして、とりあえず @csrf
というおまじないを書いたらエラーが直った経験もありませんか?)
CSRF (クロスサイトリクエストフォージェリ) は脆弱性の一種で、
これを対策しないと、ユーザーが意図しない操作(例えば、商品の購入など)を強制的に実行させられてしまう可能性があります。
じゃあどういうコードを書くとCSRF脆弱性を仕込めるのでしょうか?
このトークでは、サンプルのフォームにCSRF脆弱性を仕込み、実際に攻撃した後、脆弱性を仕込まずに済む対策について紹介します。