[HttpRequestValidationException (0x80004005): Od klienta... Potenciálně nebezpečná hodnota Request.Form je detekována v hodnotě Request.Form. ] System.Web.HttpRequest.ValidateString(String s, String valueName, String collectionName)
1. Ve skutečnosti byla chyba jasně vysvětlena a řešení je uvedeno:
Klient detekoval potenciálně nebezpečnou hodnotu Request.Form (txtUEditor="<p>a</p>").
Popis: Proces validace požadavku detekoval potenciálně nebezpečné vstupní hodnoty klienta a zpracování požadavku bylo přerušeno. Tato hodnota může naznačovat, že došlo ke snahám o ohrožení bezpečnosti aplikace, například útokem na skriptování napříč místy. Aby stránka mohla přepsat nastavení validace požadavků aplikace, nastavte vlastnost requestValidationMode v sekci konfigurace httpRuntime na requestValidationMode="2.0". Příklad: <httpRuntime requestValidationMode="2.0" />. Jakmile je tato hodnota nastavena, <pages> lze validaci požadavku deaktivovat nastavením validateRequest="false" v direktivě Page nebo v konfigurační sekci. V tomto případě se však důrazně doporučuje, aby aplikace explicitně kontrolovala všechny vstupy. Více informací najdete v http://Go.microsoft.com/fwlink/?LinkId=153133.
Podrobnosti o výjimek: System.Web.HttpRequestValidationException: Klient (txtUEditor="<p>a"a</p>" detekoval potenciálně nebezpečnou hodnotu Request.Form.
2. Další možností je nastavit ji v sekci Pages ve web.config, například:
Ale tato metoda není dobrá, je příliš násilná, protože způsobí, že všechny stránky celého projektu už neověřují odeslaný obsah a bezpečnost je výrazně snížena.
3. Doporučené postupy: Přidejte do akce atribut:[ValidateInput(false)], který pouze zabrání stránce v ověření odeslání a neovlivní ostatní stránky.
Poznámka: Pokud je takto získána Request.Form["XXX"], bude potenciálně nebezpečná anomálie stále detekována, proto nezapomeňte dáta do parametrů ovladače zadat požadovaná data! !
|