私は、CSRF攻撃を防ぐためにCSRFトークンがどのように実装されているかを読んできました。 OWASPページ(https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)_Prevention_Cheat_Sheet)およびさまざまな記事では、ページごとまたはセッションごとにランダムな一意のトークンを生成できると述べています。 (セッションあたり1回生成することをお勧めします)セッションごとのCSRFトークン情報の実装
トークンが1セッションにつき1つしか生成されない場合、そのセッションのトークンを使用するすべてのフォームページは、ページごとに同じトークンを持つ必要があります(それがリフレッシュされるといつでも)読み込まれますか?しかし、ほとんどの実装では、フォームの各ロードが異なるランダムトークンを持つことがわかりました。
どのように動作しますか?サーバー側で成功するたびに、セッションに存在するCSRFトークンが無効になっていますか?
私はこの権利を理解しているかどうかを知りたかっただけです。私はStackoverflowや他のブログで多くの同様の質問を読んだが、私はまだ混乱している。
ありがとうございます!
フォームを含むページをリフレッシュすると、トークンはセッションのトークンが期限切れになるまで毎回同じになるでしょうか? – Kevin
はい、ページを要求するときに必要なセッションハンドルをサーバーに渡す限りです。どの言語で作業していますか?たとえば、PHPでは、ページのコードの先頭近くで 'session_start()'を呼び出します。あなたのサイトが初めて訪れたときには、CRSFトークンは含まれないので、 '$ _SESSION'配列に追加します。 PHPが通常の方法で設定されていると仮定すると、セッションIDを含むクッキーがブラウザに送信され、ブラウザはサイト上の他のページリクエストのクッキーを返します。次に、 'session_start()'を呼び出すと、必要なCSRFトークンが取得されます。 – FKEinternet