[HttpRequestValidationException (0x80004005): Fra klienten... Potentielt farlig Request.Form-værdi opdages i Request.Form-værdien. ] System.Web.HttpRequest.ValidateString(String s, String valueName, String collectionName)
1. Faktisk er fejlen klart forklaret, og løsningen fortælles:
En potentielt farlig Request.Form-værdi blev opdaget fra klienten (txtUEditor="<p>a</p>").
Beskrivelse: Anmodningsvalideringsprocessen opdagede potentielt farlige klientindgangsværdier, og behandlingen af anmodningen er blevet afbrudt. Denne værdi kan indikere, at der er et forsøg på at kompromittere applikationens sikkerhed, såsom et cross-site scripting-angreb. For at tillade siden at overskrive applikationsanmodningsvalideringsindstillingerne, sæt requestValidationMode-egenskaben i httpRuntime-konfigurationssektionen til requestValidationMode="2.0". Eksempel: <httpRuntime requestValidationMode="2.0" />. Når denne værdi er sat, <pages> kan anmodningsvalidering deaktiveres ved at sætte validateRequest="false" i sidedirektivet eller i konfigurationssektionen. Det anbefales dog kraftigt i dette tilfælde, at applikationen eksplicit tjekker alle input. Se http://Go.microsoft.com/fwlink/?LinkId=153133 for mere information.
Undtagelsesdetaljer: System.Web.HttpRequestValidationException: En potentielt farlig Request.Form-værdi blev opdaget fra klienten (txtUEditor="<p>a"a</p>).
2. En anden måde er at sætte det i sektionen Sider i web.config, såsom:
Men denne metode er ikke god, for voldelig, fordi den vil gøre, at alle sider i hele projektet ikke længere verificerer det indsendte indhold, og sikkerheden bliver stærkt reduceret.
3. Anbefalede metoder: Tilføj en Attribut:[ValidateInput(false)] til handlingen, hvilket kun forhindrer siden i at validere indsendelsen og ikke påvirker andre sider.
Bemærk: Hvis Request.Form["XXX"] opnås på denne måde, vil en potentielt farlig anomali stadig blive opdaget, så sørg for at indtaste de data, du vil have, i controllerens parametre! !
|