[HttpRequestValidationException (0x80004005): Asiakkaalta... Mahdollisesti vaarallinen Request.Form-arvo havaitaan Request.Form-arvossa. ] System.Web.HttpRequest.ValidateString(Merkkijono s, merkkijonon valueName, merkkijonon kokoelmaNimi)
1. Itse asiassa virhe on selvästi selitetty ja ratkaisu on kerrottu:
Asiakkaalta havaittiin mahdollisesti vaarallinen Request.Form-arvo (txtUEditor="<p>a</p>").
Kuvaus: Pyynnön validointiprosessi havaitsi mahdollisesti vaaralliset asiakassyötteen arvot ja pyynnön käsittely on keskeytetty. Tämä arvo voi viitata siihen, että sovelluksen tietoturvaa pyritään vaarantamaan, kuten poikkisivuston skriptaushyökkäys. Jotta sivu voi ohittaa sovelluksen pyynnön validointiasetukset, aseta requestValidationMode-ominaisuus httpRuntime-konfiguraatioosiossa requestValidationMode="2.0". Esimerkki: <httpRuntime requestValidationMode="2.0" />. Kun tämä arvo on asetettu, <pages> pyyntöjen validointi voidaan poistaa käytöstä asettamalla validateRequest="false" sivudirektiivissä tai konfiguraatioosiossa. Tässä tapauksessa on kuitenkin erittäin suositeltavaa, että sovellus tarkistaa kaikki syötteet erikseen. Katso http://Go.microsoft.com/fwlink/?LinkId=153133 lisätietoja varten.
Poikkeustiedot: System.Web.HttpRequestValidationException: Asiakkaalta havaittiin mahdollisesti vaarallinen Request.Form-arvo (txtUEditor="<p>a"a</p>).
2. Toinen tapa on asettaa se web.configin Sivut-osioon, esimerkiksi:
Mutta tämä menetelmä ei ole hyvä, liian väkivaltainen, koska se saa koko projektin sivut lopettamaan lähetetyn sisällön tarkistamisen, ja turvallisuus heikkenee huomattavasti.
3. Suositellut käytännöt: Lisää toimintoon attribuutti:[ValidateInput(false)], joka estää sivua vain vahvistamasta lähetystä, eikä vaikuta muihin sivuihin.
Huomautus: Jos Request.Form["XXX"] saadaan tällä tavalla, mahdollisesti vaarallinen poikkeama havaitaan silti, joten muista laittaa haluamasi tiedot ohjaimen parametreihin!
|