質問: CSRFの対策としてCSRFトークンを使用する方法があることを知りました。 CSRFトークンを用いた検知の手順は次のように記載されていました 1. ユーザがフォーム画面にアクセス 2. サーバ側でセッションIDを元にして作成したトークンを発行 3. 発行したトークンをフォームのhiddenに埋め込む 4. formデータを受け取った際にhiddenのトークンとサーバ上のトークンを比較 5. トークンが一致していなければ、サーバ外のフォームから送信されたデータと判定 上記の手順ですが、項番1の「ユーザがフォーム画面にアクセス」が無かった場合は トークンの発行がされないと思いますが、この場合CSRFをどのように検知するのでしょうか? (例えば、罠サイト上でリンクをクリックした際に、フォーム画面にリクエストを送るような場合)
回答: > > 項番1の「ユーザがフォーム画面にアクセス」が無かった場合は > > トークンの発行がされないと思いますが、この場合CSRFをどのように検知するのでしょうか? > > > トークンが発行されない以上、**適切なトークンを送れない**ことで、CSRFの防御になります。