2011-01-07 3 views
10

MVC.NET 사이트에서 wysiwyg 편집기로 CKEditor/CKFinder를 사용하고 있습니다. 게시 된 사이트가 로컬 사이트에서 다른 이유잠재적으로 위험한 Request.Form 값이 클라이언트에서 감지되었습니다.

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

사람이 설명 할 수 :

나는 [ValidateInput(false)]를 설정하고 로컬로 디버깅 할 때 그것은 작동하지만 내가 사이트를 게시 한 다음과 같은 오류가 나타날 수 특히 내가 [ValidateInput(false)]을 설정했을 때?

* 업데이트 : * .Net 3.5을 사용하고 있으므로 [ValidateInput(false)]은 상자 밖으로 작동하지 않아야합니까?

+0

모두에서 유효성 검사를 해제하지 않습니다 작업 전에'[ValidateInput (false)]'를 지정하지 않는 한 – Vishal

+1

게시 된 사이트에서 사용중인 .NET AppPool이 .NET 4.0에서 실행되고 있지 않음을 확인할 수 있습니까? 나는 그것을 추측하고있다. –

+0

감사합니다. 분명히 호스는 .Net 4.0을 실행했습니다. – Dofs

답변

7

당신의 Web.config이 추가 :

<httpRuntime requestValidationMode="2.0" /> 
+0

죄송합니다. 모든 페이지에서 사용하지 않으려는 것을 잊어 버렸습니다. 또한 내 질문은 게시 된 것보다 디버깅 할 때 왜 다른지에 대한 질문이었습니다. – Dofs

+0

모든 페이지에서이 기능이 해제되지는 않습니다. 귀하의 속성 [ValidateInput (false)]이 작동하게됩니다. http://www.hanselman.com/blog/ExperimentsInWackinessAllowingPercentsAnglebracketsAndOtherNaughtyThingsInTheASPNETIISRequestURL.aspx –

+0

MVC.Net 3.5를 사용하고 있으므로 [ValidateInput (false)]를 사용하지 않아도됩니까? – Dofs

21

당신이 htmlEncodeOutput 속성을 설정하려고 했습니까?

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

출력을 인코딩해야하며 requestValidationMode를 설정하지 않아야합니다.

그것을 위해

문서는 여기 : ckEditor documentation

+6

+1 내 생각에 유효성 검사를 비활성화하는 것보다 낫습니다. – ashes999

+1

나는 @ ashes999에 동의한다. 앞으로 게시자에게 도움이되는 두 가지 표시 ** 1 ** 'editor1'은 ckeditor 컨트롤의 ID입니다. ** 2 _System.Net.WebUtility.HtmlDecode_를 사용하여 POST 이후에받은 값을 디코딩하는 것을 잊지 마십시오. 그렇지 않으면 아마 같은 오류가 계속됩니다. –

+0

CKEDITOR.replace()를 사용하지 않고