validateRequest

validateRequest

Summary: ASP.NET 1.1 implementiert einen Schutz für Cross Site Scripting Attacken, der das Eingeben von HTML in Textfeldern standardmäßig unterbindet.

Dieser Fehler äußert sich meist durch eine Exception folgender Art:

 Server Error in '/aspxfiles' Application.
 --------------------------------------------------------------------------------


 A potentially dangerous Request.Form value was detected from the client (TextBox1="<test>"). 
 Description: Request Validation has detected a potentially dangerous client input value, and 
 processing of the request has been aborted. This value may indicate an attempt to compromise 
 the security of your application, such as a cross-site scripting attack. You can disable request 
 validation by setting validateRequest=false in the Page directive or in the configuration section. 
 However, it is strongly recommended that your application explicitly check all inputs in this case. 


 Exception Details: System.Web.HttpRequestValidationException: A potentially dangerous 
 Request.Form value was detected from the client (TextBox1="<test>").

Dies passiert nur auf ASP.NET 1.1, das im Vergleich zu ASP.NET 1.0 eine Sicherheitsmaßnahme gegen CrossSite-ScriptingAttacken verwirklicht hat - die Formulardaten werden gegen mögliches HTML / Scripts validiert.

Wenn man dies nicht möchte (weil man die Daten selbst überprüft - und die Daten dann korrekt mit [Server.HtmlEncode] rendert), kann mit die @Page Direktive wie folgt modifizieren:

 <%@ Page Language="c#" ValidateRequest="False" ...

Es ist auch möglich diese Änderung Applikations-weit zu machen, indem man das page Tag in der web.config modifiziert:

 <page validateRequest="false" />

Dies ist aber nur dann empfehlenswert wenn man definitiv allen Projektmitarbeitern CrossSite-ScriptingAttacken erklärt hat, und sie zu [Server.HtmlEncode] verpflichtet hat!

Index: Konfiguration