Požiadavky: Extrahujte zdrojový kód v ASP.NET MVC na overenie potenciálne nebezpečných údajov vo formulári žiadosti. Jednoducho povedané, overuje, či požadované dáta obsahujú obsah cross-site scripting (XSS),XSS je v MVC predvolene blokovaný。
Cross-site scripting (XSS) je bezpečnostná zraniteľnosť, ktorú možno nájsť v niektorých webových aplikáciách. Útoky XSS umožňujú útočníkom vkladať skripty na strane klienta do webových stránok, ktoré si prezerajú iní používatelia. Útočníci by mohli využiť zraniteľnosti skriptovania naprieč lokalitami na obchádzanie prístupových kontrol, ako sú politiky rovnakého pôvodu. ValidateInput: Hodí overenie kolekcií prístupných cez vlastnosti Cookies, Form a QueryString. maliHttpRequestTrieda používa vstupnú validačnú vlajku na sledovanie, či sa validácia vykonáva na kolekcii požiadaviek, ktoré pristupujú k QueryString cez vlastnosť Cookies Form.
public void ValidateInput() { Nedáva zmysel volať to viackrát na požiadanie. Navyše, ak bola validácia potlačená, no-op teraz. if (ValidateInputWasCalled || RequestValidationSuppressed) { vrátiť; }
_Vlajky. Set(hasValidateInputBeenCalled);
Toto je na zabránenie niektorým XSS (cross site scripting) útokom (ASURT 122278) _Vlajky. Set(needToValidateQueryString); _Vlajky. Set(needToValidateForm); _Vlajky. Set(needToValidateCookies); _Vlajky. Set(needToValidatePostedFiles); _Vlajky. Set(needToValidateRawUrl); _Vlajky. Set(needToValidatePath); _Vlajky. Set(needToValidatePathInfo); _Vlajky. Set(needToValidateHeaders); } Dokumentácia:Prihlásenie na hypertextový odkaz je viditeľné.
Overenie potenciálne nebezpečných údajov:HttpRequest -> ValidateString -> CrossSiteScriptingValidation.IsDangerousString, ako je znázornené na obrázku nižšie:
Adresa zdrojového kódu:
Prihlásenie na hypertextový odkaz je viditeľné.
Prihlásenie na hypertextový odkaz je viditeľné.
Skopírujte zdrojový kód do svojho projektu a otestujte ho nasledovne:
Zdroj:
Ak naozaj chcete prijímať nebezpečný obsah, môžete použiť Request.Unvalidated.Form
(Koniec)
|