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