Я читал об использовании шаблона токена синхронизатора, чтобы предотвратить CSRF (CSRF означает подделку запроса на межсайтовый сайт.), и я не понимаю, как это действительно безопасно.
Скажем, у меня есть сайт поддельного банка fakebank.com с двумя URL-адресами:
-
fakebank.com/withdrawForm.html
- запрос GET, который отображает форму снятия денег -
fakebank.com/doWithdraw
- POST к этому URL-адресу, чтобы сделать вывод
Мое понимание недостатка безопасности заключается в том, что maliciousSite.com
может обмануть запрос POST на fakebank.com/doWithdraw
, и если вы в настоящее время вошли в fakebank, POST будет успешным.
Скажем, мы реализуем шаблон маркера синхронизатора, который будет вставлять секретный код на fakebank.com/withdrawForm.html
. Не может maliciousSite.com
просто подделать запрос GET для этой формы, проанализировать результат html, получить токен и затем создать запрос POST с этим токеном?
Это предполагает, что fakebank.com не проверяет HTTP-ссылку или Origin или maliciousSite.com
успешно подделывает, что Referrer/Origin является fakebank.com.