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

Вид: 45075|Відповідь: 7

[ASP.NET] ASP.NET CSRF-атаки Інкапсуляція запиту Ajax

[Копіювати посилання]
Опубліковано 2019-9-12 09:42:54 | | | |
Що таке CSRF?

CSRF (Cross-site request forgery), також відомий як атака/сесійний рейдинг, китайське скорочення: CSRF/XSRF. CSRF (Crosssite Request Forgery) — це метод мережевої атаки, який у 2007 році був включений до 20 найбільших ризиків безпеки в Інтернеті. Інші ризики безпеці, такі як ін'єкція скриптів SQL та атаки на міжсайтові доменні скрипти, стали широко відомими останніми роками, і багато сайтів захищалися від них. Однак CSRF досі є чужим поняттям для більшості людей. Навіть найвідоміший Gmail мав вразливість CSRF наприкінці 2007 року, яка була зламана і завдала значних втрат користувачам Gmail.

Що може зробити CSRF?

Можна зрозуміти CSRF-атаки так: зловмисник вкрав вашу особистість і надіслав шкідливі запити від вашого імені. CSRF може робити такі речі, як надсилати електронні листи, надсилати повідомлення, красти ваш акаунт або навіть купувати товари та переводити віртуальну валюту від вашого імені...... Проблеми, що виникають: витік особистої приватності та безпеку майна.

ASP.NET MVC AntiForgeryToken антифальшивий знак

У ASP.NET MVC формові токени та токени cookie автоматично генеруються за замовчуванням щоразу, коли @Html.AntiForgeryToken() використовується на сторінці перегляду. Однак, якщо ми хочемо отримати ручне отримання у фоновому режимі, нам потрібно використовувати клас System.Web.Helpers.AntiForgery, і друзі, які зацікавлені у перегляді вихідного коду, виявлять, що метод внутрішнього виклику @Html.AntiForgeryToken() такий самий, як і у класі AntiForgery.

Він головним чином використовується для отримання відповідної форми та токена cookie за допомогою двох статичних методів: AntiForgery.GetHtml() або AntiForgery.GetTokens (рядок oldCookieToken, вихідний рядок newCookieToken, зовнішній рядок formToken). Однак слід зазначити, що після виклику методу GetHtml відповідний токен cookie буде автоматично згенерований, а потім шматок HTML-коду з прихованим полем значення токена форми повертається напряму, і повернене значення буде у такій формі:

<input name="__RequestVerificationToken" type="hidden" value="8_nUk_3z0svQr9qcvRBi9SWMZ2-SYmuy9kRe9OgRobGULkb2Z4JZxRZFhR0ndeoy9hmDLDru7MFk-W4xrnL5z5T6VbkfXK7fyRk-egQBGm41">

Ім'я прихованого поля зазвичай фіксується на "__RequestVerificationToken", а значення є зашифрованим токеном безпеки. Це приховане поле зазвичай розміщується у формі для подачі, а фінальна подача перевіряється за токеном cookie.

Якщо ви використовуєте метод GetTokens, ви можете отримати зашифровану форму та токен cookie після передачі відповідних параметрів, але тут потрібно зберігати відповідні значення самостійно.

Далі ми представимо метод ручного оновлення AntiForgeryToken, головним чином через AJAX.

Код упаковки:



Тестовий код:



Ми з'ясували, що при відправленні ajax-запиту автоматично додаються __RequestVerificationToken параметри, як показано на рисунку нижче:







Попередній:Огляд історичної історії команд Windows CMD Tutorial
Наступний:Meet Azure DevOps
 Орендодавець| Опубліковано 2019-9-25 18:09:46 |
Опубліковано 2019-11-10 15:06:37 |
Хіба ти не писав план біографічного лікування? Обробка фону всередині заголовка відрізняється від фонової обробки без заголовка
 Орендодавець| Опубліковано 2019-11-21 10:38:40 |
Danqingcheng опубліковано 2019-11-10 15:06
Хіба ти не писав план біографічного лікування? Обробка фону всередині заголовка відрізняється від фонової обробки без заголовка

Хмм, мені треба переписати фільтр
 Орендодавець| Опубліковано 2021-2-20 19:22:14 |
mvc ajax з AntiForgeryToken для запобігання CSRF-атакам
https://www.itsvse.com/thread-4207-1-1.html
Опубліковано 9.12.2021 18:41:29 |
testtesttest
 Орендодавець| Опубліковано 2022-4-17 12:59:39 |
Не тестувався


 Орендодавець| Опубліковано 2024-9-26 15:57:52 |
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com