Часто спостерігається, що дані повідомлень ajax на сервер у проєкті не позначені тегами проти підробок, що викликає атаки CSRF, і дуже легко додати антипідробкові марки до Asp.net MVC, додавши до форми Html.AntiForgeryToken(). Html.AntiForgeryToken() генерує пару зашифрованих рядків, які зберігаються у файлах cookie та input. Ми також додаємо AntiForgeryToken у пошт ajax
Html.AntiForgeryToken() у MVC — це захід для запобігання атак через крос-сайтові підробки запитів (CSRF: Cross-site request fery), що відрізняється від XSS (XSS також відомий як CSS: Cross-Site-Script). XSS зазвичай використовує довірених користувачів сайту для введення шкідливого скрипт-коду в мережу з метою атаки. CSRF, навпаки, — це псевдодовірений користувач, який атакує сайт. Спершу розглянемо код так:
Під час запуску згенерований html-код виглядає так:
Давайте натиснемо кнопку тестування, щоб запросити тест і перевірити, чи є у нього файли cookie, що захищають від підробки, як показано на рисунку нижче:
Код у контролері виглядає так:
Нам потрібно додати функцію ValidateAntiForgeryToken до кожного контролера, якщо користувач не приносить AntiForgeryToken, ми можемо повернути йому дружній запит, наступним чином:
|