[HttpRequestValidationException (0x80004005): Iš kliento... Potencialiai pavojinga Request.Form reikšmė aptikta Request.Form reikšmėje. ] System.Web.HttpRequest.ValidateString(String s, String valueName, String collectionName)
1. Tiesą sakant, klaida buvo aiškiai paaiškinta ir sprendimas yra pasakytas:
Klientas aptiko potencialiai pavojingą Request.Form reikšmę (txtUEditor="<p>a</p>").
Aprašas: užklausos tikrinimo procesas aptiko potencialiai pavojingas kliento įvesties reikšmes ir užklausos apdorojimas buvo nutrauktas. Ši reikšmė gali reikšti, kad bandoma pakenkti programos saugai, pvz., kelių svetainių scenarijų ataka. Norėdami leisti puslapiui perrašyti programos užklausos tikrinimo parametrus, nustatykite ypatybę requestValidationMode httpRuntime konfigūracijos skyriuje į requestValidationMode="2.0". Pavyzdys: <httpRuntime requestValidationMode="2.0" />. Nustačius šią reikšmę, <pages> užklausos tikrinimą galima išjungti nustatant validateRequest="false" puslapio direktyvoje arba konfigūracijos skyriuje. Tačiau šiuo atveju labai rekomenduojama, kad programa aiškiai patikrintų visas įvestis. Daugiau informacijos rasite http://Go.microsoft.com/fwlink/?LinkId=153133.
Išsami išimties informacija: System.Web.HttpRequestValidationException: klientas aptiko potencialiai pavojingą Request.Form reikšmę (txtUEditor="<p>a"a</p>).
2. Kitas būdas yra nustatyti jį web.config puslapių skiltyje, pvz.:
Tačiau šis metodas nėra geras, per daug smurtinis, nes dėl to visi viso projekto puslapiai nebetikrins pateikto turinio, o saugumas labai sumažės.
3. Rekomenduojama praktika: Prie veiksmo pridėkite atributą:[ValidateInput(false)], kuris tik neleis puslapiui tikrinti pateikimo ir neturės įtakos kitiems puslapiams.
Pastaba: Jei tokiu būdu gaunama Request.Form["XXX"], potencialiai pavojinga anomalija vis tiek bus aptikta, todėl būtinai įveskite duomenis, kuriuos norite gauti, į valdiklio parametrus! !
|