【PHPセキュリティ】CSRF対策
クロスサイトフォージェリ(CSRF)とは
ユーザーが意図しない操作をユーザー自身の権限を用いて実行させてしまう。
これだと意味わかんね。
例えば、ユーザーがはてなブログにログインする。
で、はてなブログには記事の削除機能がある。これをユーザー自身にさせてしまう。
どっか他のサーバーにはてなブログの記事を削除を実行するページへデータをpostしてしまうページを用意しておく。
それをユーザーが踏んじゃうとユーザー自身が削除したことになってしまう。
恐ろしや。
対策
- 実行時にパスワードを入力させる。
- ワンタイムトークンでチェックする
パスワード入力が必要であれば、リダイレクトされてもいきなり削除されないもんね。
でも、パスワード盗まれてたらpostされて実行できちゃうね。
まあ、パスワード盗まれてる時点で終わってんだけどねw
だから、本当は両方やるべき。
そこは利便性を天秤にかけて考える。