1, потому что разрешить пользователям вводить теги html, такие как <script>
и т. Д. Поэтому я отключил запрос asp.net validate в web.config.Должен ли я кодировать строку перед назначением ее asp.net TextBox
<httpRuntime requestValidationMode="2.0"/>
<pages validateRequest="false"/>
2, в целях предотвращения xss
нападающих, я добавил HttpUtility.HtmlEncode
для кодирования строки.
3, В моем веб-приложении Пользователи могут добавлять и редактировать сами статьи. Но я не уверен. Если я должен закодировать на этапе загрузки страницы для TextBox на странице ArticleEdit.aspx.
например:
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