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