2011-01-07 19 views
10

Sto utilizzando CKEditor/CKFinder come editor wysiwyg sul mio sito MVC.NET.Un valore Request.Form potenzialmente pericoloso è stato rilevato dal client

Ho impostato [ValidateInput(false)] e funziona durante il debug a livello locale, ma ricevo il seguente errore quando ho pubblicato il sito:

A potentially dangerous Request.Form value was detected from the client (message="<p> 
<em>Testing</e..."). 

qualcuno può spiegare perché il sito pubblicato è diverso dal sito in locale, soprattutto quando ho impostato [ValidateInput(false)]?

* Aggiornamento: * Sto usando Net 3.5 in modo da non dovrebbe [ValidateInput(false)] lavoro fuori della scatola?

+0

Aggiunta del web.config non disattiva la convalida su tutti pagine a meno che non si specifica '[ValidateInput (false)]' prima dell'azione. – Vishal

+1

È possibile confermare che .NET AppPool che sta utilizzando il sito pubblicato non è in esecuzione in .NET 4.0? Suppongo che lo sia. –

+0

Grazie, apparentemente gli hos hanno funzionato .Net 4.0. – Dofs

risposta

7

Aggiungi questo al vostro web.config:

<httpRuntime requestValidationMode="2.0" /> 
+0

Scusa se ho dimenticato di dire che non volevo disattivarlo su tutte le pagine. Inoltre, la mia domanda riguardava anche il motivo per cui era diverso quando si eseguiva il debug rispetto a quando è stato pubblicato. – Dofs

+0

questo non lo girerà per tutte le pagine. Renderà il tuo attributo [ValidateInput (false)] funzionante. http://www.hanselman.com/blog/ExperimentsInWackinessAllowingPercentsAnglebracketsAndOtherNaughtyThingsInTheASPNETIISRequestURL.aspx –

+0

Sto utilizzando MVC.Net 3.5 quindi non dovrebbe funzionare [ValidateInput (false)] out of the box? – Dofs

21

Hai provato impostando la proprietà htmlEncodeOutput?

> CKEDITOR.replace('editor1', { 
> htmlEncodeOutput: true }); 

Questo dovrebbe codificare l'uscita e si dovrebbe essere in grado di evitare di impostare il requestValidationMode.

documentazione perché è qui: ckEditor documentation

+6

+1 questo è meglio che disabilitare la validazione secondo me. – ashes999

+1

Sono d'accordo con @ ashes999. Due indicazioni per aiutare i futuri lettori del post ** 1 ** 'editor1' è l'id del controllo del ckeditor ** 2 ** non dimenticare di decodificare il valore ricevuto dopo il POST con _System.Net.WebUtility.HtmlDecode_ altrimenti tu Probabilmente continuerà ad avere lo stesso errore. –

+0

Non sto usando CKEDITOR.replace(), io uso