Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 37886|Odpowiedź: 4

[ASP.NET] mvc ajax z AntiForgeryToken, aby zapobiec atakom CSRF

[Skopiuj link]
Opublikowano 02.11.2017 10:06:29 | | | |
Często widać, że dane ajax post-data na serwerze w projekcie nie są oznaczone tagami anty-fałszerstwami, co powoduje ataki CSRF, a bardzo łatwo jest dodać znaki antyfałszerskie do Asp.net MVC, dodając do formularza Html.AntiForgeryToken().
Html.AntiForgeryToken() generuje parę zaszyfrowanych ciągów tekstów przechowywanych w ciasteczkach i wejściu. W poście o ajax również wspominamy o AntiForgeryToken
Html.AntiForgeryToken() w MVC to środek zapobiegający atakom fałszerstwem żądań między witrynami (CSRF: Cross-site request forgery), który różni się od XSS (XSS znany również jako CSS: Cross-Site-Script). XSS zazwyczaj wykorzystuje zaufanych użytkowników na stronie do wstawiania złośliwego kodu skryptu do sieci w celu ataku. CSRF natomiast to pseudo-zaufany użytkownik atakujący stronę internetową.
Najpierw spójrzmy na kod następująco:

Podczas działania wygenerowany kod html wygląda tak:



Kliknij przycisk test, aby poprosić o test i sprawdzić, czy zawiera pliki cookie antyfałszerskie, jak pokazano na poniższym rysunku:



Kod w kontrolerze wygląda następująco:

Musimy dodać funkcję ValidateAntiForgeryToken do każdego kontrolera, jeśli użytkownik nie przyniesie AntiForgeryToken, możemy zwrócić mu przyjazny komunikat, w następujący sposób:







Poprzedni:asp.net funkcja wiązania BindAttribute mvc
Następny:Jedno z porównań między CMMI a Agile: zasadnicza różnica między nimi
 Ziemianin| Opublikowano 02.11.2017 11:05:37 |
W przypadku powyższej metody musisz dostosować tę funkcję i nie możesz używać domyślnej funkcji ValidateAntiForgeryToken

Domyślną cechą jest wzięcie wartości w formie formy, a następnie jej ocena



Zakończyłem metodę postu jQuery z walidacją anty-fałszerstwa, a kod wygląda następująco:



 Ziemianin| Opublikowano 02.11.2017 11:17:36 |
IsAjaxRequest w celu ustalenia, czy jest to żądanie ajax

W zasadzie IsAjaxRequest() określa, czy w nagłówku znajduje się pole X-Requested-With oraz czy jest to XMLHttpRequest

Przeglądanie dokumentacji jest bezużyteczne, to zależy od kodu źródłowego.
 Ziemianin| Opublikowano 20.02.2021 19:22:26 |
ASP.NET atak CSRF Ajax żąda enkapsulacji
https://www.itsvse.com/thread-8077-1-1.html
Opublikowano 09.12.2021 18:37:56 |
testtesttesttest
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com