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

Widok: 3317|Odpowiedź: 2

[Źródło] ASP.NET MVC żąda walidacji niebezpiecznej treści XSS (ValidateInput)

[Skopiuj link]
Opublikowano 08.07.2023 22:05:07 | | | |
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)




Poprzedni:ASP.NET MVC otrzymuje wszystkie adresy interfejsu przez odbicie
Następny:.NET/C# wykorzystuje SqlConnectionStringBuilder do porównywania połączeń baz danych
 Ziemianin| Opublikowano 08.07.2023 22:06:32 |
Klasa AllowHtmlAttribute pozwala na uwzględnienie zapytań HTML podczas wiązania modelu, pomijając walidację żądań dla atrybutów. (Zaleca się, aby aplikacje wyraźnie sprawdzały wszystkie modele wyłączające walidację żądań, aby zapobiec atakom skryptowym.) )

https://learn.microsoft.com/zh-c ... .allowhtmlattribute
 Ziemianin| Opublikowano 08.07.2023 22:06:49 |
Tagi antyfałszerskie ValidateAntiForgeryToken oraz AutoValidateAntiforgeryToken są szczegółowo wyjaśnione
https://www.itsvse.com/thread-9568-1-1.html
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