2010-11-22 2 views
7

어떻게 인코딩하는 Html.TextAreaForwithout을 사용할 수 있습니까? 보안 상 위험 할 수 있습니다. 그러나 텍스트를 살균하는 별도의 클래스가 있습니다.인코딩이없는 ASP.NET MVC3, Html.TextAreaFor?

예 :

@ Html.TextAreaFor (모델 => model.PostBodyText, 10, 100, 1)

내가 TinyMCE에 함께 사용할 계획입니다.

감사 까마귀

나는 새로운 면도기보기 엔진을 사용하고 UPDATE.

답변

9

당신은 자신의 롤해야합니다 :이 사이트 매우 위험 할 수

물론
<textarea cols="100" id="PostBodyText" name="PostBodyText" rows="10"> 
    @MvcHtmlString.Create(Model.PostBodyText) 
</textarea> 

보안의 측면에서 지금 XSS 공격에 취약합니다. 따라서 HTML 헬퍼를 사용하여 작업을 수행 할 때 모든 텍스트를 위생적으로 처리하는 별도의 클래스를 사용해야하는 이유는 무엇입니까?

+0

고마워요. 당신을 상향 시켰을 지 모르지만 나는 사이트에 처음 온 사람입니다. :) – RaVen

+0

@RaVen, 아무런 문제도없이 질문을하고 평판을 얻으 려 할 때. –

+0

그래, 알아,하지만 나는 모든 자바 스크립트 태그를 걸러 내고있다 ... 나는 오직 안전한 HTML 태그만을 허용한다. 하지만 예, TinyMCE는 보안 결함을 일으킬 수 있습니다. 다시 한번 대단히 감사합니다. :) – RaVen

1

here과 같이 ValidateInput을 사용하고 싶을 수도 있습니다. MVC 스타일의 예는 다음과 같습니다.

[ValidateInput(false)] 
public ActionResult Method(){ 
    return View() 
} 

[ValidateInput(false)] 
[AcceptVerbs(HttpVerbs.Post)] 
public ActionResult Method(){ 
    // your stuff here 
    RedirectToAction("index"); // or something 
} 

나는 이것이 MVC 방식이라고 생각합니다. 이제 컨트롤러가 해당 컨트롤러 메소드에 보안 문제가 있음을 알립니다. 뷰는 html 헬퍼 등을 사용하는 일반적인 뷰일 수 있습니다. 이는 필터링되지 않은 모든 종류의 입력을 가능하게합니다. 이지만 TinyMCE와 호환됩니다.

// 편집 난 당신이

<httpRuntime requestValidationMode="2.0"/> 

는 MVC의 새로운 버전뿐만 아니라 webconfig에 추가 할 필요가 볼

woops. 그것이가는 길이 아닐 수도 있습니다.

+0

이것은 정확하게 맞습니다. [ValidateInput (false)]을 사용하면 양식에 HTML을 게시 할 수 있습니다. –