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

Изглед: 37886|Отговор: 4

[ASP.NET] mvc ajax с AntiForgeryToken за предотвратяване на CSRF атаки

[Копирай линк]
Публикувано в 2.11.2017 г. 10:06:29 ч. | | | |
Често се наблюдава, че данните от ajax post към сървъра в проекта не са маркирани с тагове за борба с фалшифициране, което причинява CSRF атаки, и е много лесно да се добавят антифалшиви марки към MVC Asp.net чрез добавяне на Html.AntiForgeryToken() към формата.
Html.AntiForgeryToken() генерира чифт криптирани низове, които се съхраняват в бисквитки и вход. Също така добавяме AntiForgeryToken в ajax публикацията
Html.AntiForgeryToken() в MVC е мярка за предотвратяване на атаки за фалшифициране на крос-сайт заявки (CSRF: Cross-site request forgery), което се различава от XSS (XSS е известен още като CSS: Cross-Site-Script). XSS обикновено използва доверени потребители в сайта, за да вмъкнат злонамерен скриптов код в мрежата с цел атака. CSRF, от друга страна, е псевдо-доверен потребител, който атакува уебсайт.
Първо, нека разгледаме кода по следния начин:

При изпълнение генерираният html код изглежда така:



Нека натиснем бутона за тест, за да поискаме тест и да видим дали има бисквитки срещу фалшифициране, както е показано на фигурата по-долу:



Кодът в контролера е следният:

Трябва да добавим функцията ValidateAntiForgeryToken към всеки контролер, ако потребителят не донесе AntiForgeryToken, можем да върнем приятелска заявка към потребителя, както следва:







Предишен:asp.net mvc BindAttribute binding feature
Следващ:Едно от сравненията между CMMI и Agile: съществената разлика между двете
 Хазяин| Публикувано в 2.11.2017 г. 11:05:37 ч. |
За горния метод трябва да персонализирате функцията и не можете да използвате стандартната функция ValidateAntiForgeryToken

По подразбиране е да вземеш стойността във формата и след това да я оцениш



Инкапсулирах метод за публикуване с jQuery с валидация срещу фалшифициране, и кодът е следният:



 Хазяин| Публикувано в 2.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
Публикувано в 9.12.2021 г. 18:37:56 ч. |
testtesttesttesttest
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com