[HttpRequestValidationException (0x80004005): Od klienta... Potenciálne nebezpečná hodnota Request.Form je detegovaná v hodnote Request.Form. ] System.Web.HttpRequest.ValidateString(String s, String valueName, String collectionName)
1. V skutočnosti bola chyba jasne vysvetlená a riešenie je uvedené:
Klient detekoval potenciálne nebezpečnú hodnotu Request.Form (txtUEditor="<p>a</p>").
Popis: Proces validácie požiadaviek detegoval potenciálne nebezpečné vstupné hodnoty klienta a spracovanie požiadavky bolo prerušené. Táto hodnota môže naznačovať, že dochádza k pokusu o ohrozenie bezpečnosti aplikácie, napríklad cross-site scripting útokom. Aby stránka mohla prepísať nastavenia validácie požiadaviek aplikácií, nastavte vlastnosť requestValidationMode v sekcii konfigurácie httpRuntime na requestValidationMode="2.0". Príklad: <httpRuntime requestValidationMode="2.0" />. Po nastavení tejto hodnoty <pages> je možné validáciu požiadaviek deaktivovať nastavením validateRequest="false" v smernici Page alebo v sekcii konfigurácie. V tomto prípade sa však dôrazne odporúča, aby aplikácia explicitne kontrolovala všetky vstupy. Viac informácií nájdete v http://Go.microsoft.com/fwlink/?LinkId=153133.
Podrobnosti o výnimke: System.Web.HttpRequestValidationException: Klient detegoval potenciálne nebezpečnú hodnotu Request.Form (txtUEditor="<p>a"a</p>).
2. Ďalším spôsobom je nastaviť ho v sekcii Stránky vo web.config, napríklad:
Táto metóda však nie je dobrá, je príliš násilná, pretože spôsobí, že všetky stránky celého projektu už nebudú overovať zaslaný obsah a bezpečnosť sa výrazne zníži.
3. Odporúčané postupy: Pridajte atribút :[ValidateInput(false)] do akcie, ktorý iba zabráni stránke overiť odoslanie a neovplyvní ostatné stránky.
Poznámka: Ak je Request.Form["XXX"] získaný týmto spôsobom, potenciálne nebezpečná anomália bude stále detegovaná, preto nezabudnite dáta, ktoré chcete získať, vložiť do parametrov ovládača! !
|