В этом посте я хочу рассказать о том, что такое CSRF (Cross-Site Request Forgery) атака и как от нее защититься.

Акт 1

Представим себе сайт интернет банкинга какого-нибудь выдуманного банка. Клиент этого банка вполне легальным образом логинится на сайте, выполняет ряд операций и закрывает страницу не сделав выход. После этой операции в браузере клиента осталась кука.

Клиент обманным путем попадает на сайт мошенников, которые отправляют AJAX запрос на сайт интернет банкинга с запросом о переводе некой суммы денег на счет мошенников. Так как в браузере осталась кука с сайта интернет банкинга, то она любезно прикрепляется браузером к запросу мошенников. Всё.