2013-07-06 6 views
0

1, 사용자가 <script>과 같은 html 태그를 입력 할 수 있도록 허용하므로 asp.net은 web.config에서 요청 유효성 검사를 비활성화했습니다.asp.net TextBox에 할당하기 전에 문자열을 인코딩해야합니까

<httpRuntime requestValidationMode="2.0"/> 
<pages validateRequest="false"/> 

2, xss 공격을 방지하기 위해, 나는 문자열을 인코딩하는 HttpUtility.HtmlEncode을 추가했습니다.

3 내 웹 응용 프로그램에서 사용자는 ArticleEdit.aspx 페이지의 TextBox에 대한 페이지로드 단계에서 인코딩해야하는지 잘 모릅니다.

예 :

ArticleEdit.aspx :

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
</head> 
<body> 
    <form id="form1" runat="server"> 
     <input type="text" id="articleTitle" runat="server" /> 
    </form> 
</body> 
</html> 

ArticleEdit.aspx.cs :

protected void Page_Load(object sender, EventArgs e) 
     { 
      string titleText = "<script>alert('1111');</script>"; //string "<script>alert('1111');</script>" is fetched from DB; 
      articleTitle.Value = titleText; 

     } 

질문 1 :

나는 아래처럼은 titleText 문자열을 인코딩 갈까요나요 ?

string titleText =HttpUtility.HtmlEncode("<script>alert('1111');</script>"); 
articleTitle.Value = titleText; 

질문 2 :

는 인코딩, string.After 페이지 로딩이 완료되면, 사용자는 인코딩 된 문자열을 &lt;script&gt;alert(&#39;1111&#39;);&lt;/script&gt; 대신 "<script>alert('1111');</script>" 을 볼 것입니다.

해결 방법?

나쁜 영어로 죄송합니다. 미리 감사드립니다.

답변

1

아래와 같이 titleText 문자열을 인코딩합니까?

아니요, 텍스트 상자의 Value 속성에 할당하면 아무 것도 인코딩 할 필요가 없습니다. WebControl은 표시하기 전에 자동으로 인코딩합니다.

+0

@ DarinDimitrov- 도와 주셔서 감사합니다. – user441222

관련 문제