Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 45075|Отговор: 7

[ASP.NET] ASP.NET CSRF атака Ajax заявка за капсулиране

[Копирай линк]
Публикувано на 2019-9-12 09:42:54 | | | |
Какво е CSRF?

CSRF (Cross-site request forgery), известен още като еднопосочна атака/сесия, китайско съкращение: CSRF/XSRF. CSRF (Cross Site Request Forgery) е метод за мрежова атака, който през 2007 г. беше включен сред 20-те най-големи рискове за сигурността в Интернет. Други рискове за сигурността, като инжектиране на SQL скриптове и атаки с различни домейн скриптове, станаха добре известни през последните години и много уебсайтове се защитават срещу тях. Въпреки това, CSRF все още е чуждо понятие за повечето хора. Дори най-известният Gmail имаше уязвимост CSRF в края на 2007 г., която беше хакната и причини огромни загуби на потребителите на Gmail.

Какво може да направи CSRF?

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

ASP.NET MVC AntiForgeryToken марка срещу фалшифициране

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

Основно се използва за получаване на съответната форма и токена на бисквитките чрез два статични метода: AntiForgery.GetHtml() или AntiForgery.GetTokens (string oldCookieToken, изход на string newCookieToken, изход низ formToken). Въпреки това, трябва да се отбележи, че след като методът GetHtml бъде извикан, съответният токен за бисквитки се генерира автоматично, след което парче HTML код с скрито поле за стойност на токена ще бъде върнат директно, като върнатата стойност ще бъде в тази форма:

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

Името на скритото поле обикновено е фиксирано на "__RequestVerificationToken", а стойността е криптиран токен за сигурност. Това скрито поле обикновено се поставя във формата за подаване, а крайното подаване се проверява спрямо токена за бисквитки.

Ако използвате метода GetTokens, можете да получите криптираната форма и токена на бисквитките след като въведете съответните параметри, но тук трябва сами да съхранявате съответните стойности.

След това ще въведем метода за ръчно обновяване на AntiForgeryToken, главно чрез AJAX.

Код на пакета:



Тестов код:



Открихме, че при изпращане на ajax заявка __RequestVerificationToken параметри се включват автоматично, както е показано на фигурата по-долу:







Предишен:Windows CMD Преглед на историческата история на командите
Следващ:Запознайте се с Azure DevOps
 Хазяин| Публикувано на 25.09.2019 18:09:46 |
Публикувано на 2019-11-10 15:06:37 |
Не написа ли план за лечение на миналото? Фоновата обработка вътре в хедъра е различна от тази без хедър
 Хазяин| Публикувано на 21.11.2019 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 |
 Хазяин| Публикувано на 26.09.2024 15:57:52 |
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com