Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 37886|Відповідь: 4

[ASP.NET] mvc ajax з AntiForgeryToken для запобігання CSRF-атакам

[Копіювати посилання]
Опубліковано 02.11.2017 10:06:29 | | | |
Часто спостерігається, що дані повідомлень 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, ми можемо повернути йому дружній запит, наступним чином:







Попередній:asp.net mvc BindAttribute feature binding
Наступний:Одне з порівнянь між CMMI та Agile: суттєва різниця між ними.
 Орендодавець| Опубліковано 02.11.2017 11:05:37 |
Для наведеного вище методу потрібно налаштувати функцію, і ви не можете використовувати стандартну функцію ValidateAntiForgeryToken

За замовчуванням є взяття значення у формі форми і оцінювання його



Я інкапсулював метод посту за допомогою jQuery з валідацією проти підробки, і код виглядає так:



 Орендодавець| Опубліковано 02.11.2017 11:17:36 |
IsAjaxRequest, щоб визначити, чи є це ajax-запитом

По суті, IsAjaxRequest() визначає, чи є поле X-Requested-With у заголовку і чи є це XMLHttpRequest

Перегляд документації марний, все залежить від вихідного коду.
 Орендодавець| Опубліковано 20.02.2021 19:22:26 |
ASP.NET CSRF-атаки Інкапсуляція запиту Ajax
https://www.itsvse.com/thread-8077-1-1.html
Опубліковано 09.12.2021 18:37:56 |
testtesttesttesttest
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com