2011-01-07 58 views
10

Estoy usando CKEditor/CKFinder como editor wysiwyg en mi sitio MVC.NET.Se detectó un valor Request.Form potencialmente peligroso desde el cliente

he puesto [ValidateInput(false)] y funciona al depurar de forma local, pero recibo el siguiente error cuando he publicado el sitio:

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

Puede alguien explicar por qué el sitio publicado es diferente del sitio a nivel local, especialmente cuando he configurado [ValidateInput(false)]?

* Actualización: * Estoy usando .Net 3.5, ¿no debería funcionar [ValidateInput(false)]?

+0

Añadiendo el web.config no va a desactivar la validación de todos páginas a menos que especifique '[ValidateInput (false)]' antes de la acción. – Vishal

+1

¿Puede confirmar que el .NET AppPool que está utilizando su sitio publicado no se está ejecutando en .NET 4.0? Supongo que es así. –

+0

Gracias, al parecer, los hos corrieron .Net 4.0. – Dofs

Respuesta

7

Agregue esto a su web.config:

<httpRuntime requestValidationMode="2.0" /> 
+0

Lo siento, me olvidé de mencionar que no quería deshabilitarlo en todas las páginas. También mi pregunta era también acerca de por qué era diferente cuando se depuraba que cuando se publicaba. – Dofs

+0

esto no lo cambiará para todas las páginas. Simplemente hará que su atributo [ValidateInput (false)] funcione. http://www.hanselman.com/blog/ExperimentsInWackinessAllowingPercentsAnglebracketsAndOtherNaughtyThingsInTheASPNETIISRequestURL.aspx –

+0

Estoy usando MVC.Net 3.5 por lo que no debería [ValidateInput (false)] trabajar de la caja? – Dofs

21

Ha intentado establecer la propiedad htmlEncodeOutput?

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

Esto debería codificar la salida y debería poder evitar configurar requestValidationMode.

Documentación porque es aquí: ckEditor documentation

+6

+1 esto es mejor que deshabilitar la validación en mi opinión. – ashes999

+1

Estoy de acuerdo con @ ashes999. Dos indicaciones para ayudar a los futuros lectores de la publicación ** 1 ** 'editor1' es la identificación del control ckeditor ** 2 ** no olvide descodificar el valor recibido después de la POST con _System.Net.WebUtility.HtmlDecode_ de lo contrario, usted Probablemente continuará teniendo el mismo error. –

+0

No uso CKEDITOR.replace(), uso