RequestValidation e RequestValidationMode in ASP.NET 4.0

Dalla versione 2.0 di Asp.Net a default è impossibile inserire del testo html nelle textbox per motivi di sicurezza, in particolare per evitare la script injection.

Cercando di inserire dei tag html in una form si ottiene un’eccezione di questo tipo:

A potentially dangerous Request.Form value was detected from the client

Tipicamente questo comportamento viene disabilitato in alcune aree del backoffice delle web application proprio per consentire l’inserimento di testo Html come ad esempio la descrizione estesa dei prodotti in un sito di commercio elettronico.

Per disabilitare la validazione è sufficiente impostare ValidateRequest a false all’interno della direttiva page.

Fin qui tutto normale.

Però migrando un progetto al framework 4.0 la validazione scatta nuovamente e si ottiene nuovamente lo YSOD.

Il problema si presenta in quanto la pipeline di validazione è stata modificata. Per ottenere nuovamente il comportamento del framework 2.0 è sufficiente settare il parametro requestValidationMode nel web.config:

<httpRuntime requestValidationMode=”2.0″ />

Ogni valore inferiore a 4.0 viene interpretato come 2.0.

Maggiori informazioni sul sito MSDN:

HttpRuntimeSection.RequestValidationMode Property

Share

Leave a Reply

Your email address will not be published. Required fields are marked *