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 페이지 로딩이 완료되면, 사용자는 인코딩 된 문자열을 <script>alert('1111');</script>
대신 "<script>alert('1111');</script>"
을 볼 것입니다.
해결 방법?
나쁜 영어로 죄송합니다. 미리 감사드립니다.
@ DarinDimitrov- 도와 주셔서 감사합니다. – user441222