Wymagania: Wyodrębnić kod źródłowy w ASP.NET MVC, aby zweryfikować potencjalnie niebezpieczne dane w formularzu zgłoszenia. Mówiąc wprost, weryfikuje, czy żądane dane zawierają zawartość cross-site scripting (XSS),XSS jest domyślnie blokowany w MVC。
Skrypty międzywitrynowe (XSS) to luka bezpieczeństwa, którą można znaleźć w niektórych aplikacjach webowych. Ataki XSS umożliwiają atakującym wstrzykiwanie skryptów po stronie klienta do stron internetowych przeglądanych przez innych użytkowników. Atakujący mogli wykorzystać luki skryptów międzywitrynowych, aby obejść kontrole dostępu, takie jak polityki tego samego źródła. ValidateInput: Odtwarza weryfikację kolekcji dostępnych za pomocą właściwości Cookies, Form i QueryString. powinienHttpRequestKlasa wykorzystuje flagę walidacji wejściowej do śledzenia, czy walidacja jest wykonywana dla kolekcji żądań uzyskujących dostęp do QueryString za pomocą formularza właściwości Cookies.
public void ValidateInput() { Nie ma sensu dzwonić do tego wielokrotnie na jedno żądanie. Dodatkowo, jeśli weryfikacja została zablokowana, teraz nie mam żadnej op. if (ValidateInputWasCalled || RequestValidationSuppressed) { wrócić; }
_Flagi. Set(hasValidateInputBeenCalled);
Ma to zapobiec niektórym atakom XSS (cross site scripting) (ASURT 122278) _Flagi. Set(needToValidateQueryString); _Flagi. Set(needToValidateForm); _Flagi. Set(needToValidateCookies); _Flagi. Set(needToValidatePostedFiles); _Flagi. Set(needToValidateRawUrl); _Flagi. Set(needToValidatePath); _Flagi. Set(needToValidatePathInfo); _Flagi. Set(needToValidateHeaders); } Dokumentacja:Logowanie do linku jest widoczne.
Weryfikacja potencjalnie niebezpiecznych danych:HttpRequest -> ValidateString -> CrossSiteScriptingValidation.IsDangerousString, jak pokazano na poniższym rysunku:
Adres kodu źródłowego:
Logowanie do linku jest widoczne.
Logowanie do linku jest widoczne.
Skopiuj kod źródłowy do swojego projektu i przetestuj go w następujący sposób:
Źródło:
Jeśli naprawdę chcesz otrzymywać niebezpieczne treści, możesz użyć Request.Unvalidated.Form
(Koniec)
|