CSRF (CSRF はクロスサイト リクエスト フォージェリを意味します) を防ぐためにシンクロナイザー トークン パターンを使用することについて読んでいますが、それが実際にどのように安全であるかがわかりません。
2 つの URL を持つ偽の銀行サイト fakebank.com があるとします。
fakebank.com/withdrawForm.html
- 出金フォームを表示する GET リクエストfakebank.com/doWithdraw
- この URL に POST して、引き出しを行います
セキュリティ上の欠陥についての私の理解では、maliciousSite.com
への POST リクエストをスプーフィングすることができfakebank.com/doWithdraw
、fakebank に現在ログインしている場合、POST は成功します。
に秘密のコードを埋め込む Synchronizer Token Pattern を実装するとしましょうfakebank.com/withdrawForm.html
。maliciousSite.com
そのフォームの GET リクエストをスプーフィングし、html の結果を解析し、トークンを取得して、そのトークンを使用して POST リクエストを作成することはできませんか?
これは、fakebank.com が HTTP リファラーまたはオリジンをチェックしていないかmaliciousSite.com
、リファラー/オリジンが fakebank.com であるとスプーフィングに成功していることを前提としています。