2013-07-06 2 views
0

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 страница завершена, пользователь будет видеть кодированные строки &lt;script&gt;alert(&#39;1111&#39;);&lt;/script&gt; вместо "<script>alert('1111');</script>".

Как это решить?

Извините за мой плохой английский. Спасибо заранее!

ответ

1

Был ли я кодировать заголовок titleText, как показано ниже?

Нет, вам не нужно ничего кодировать, если вы назначаете его в свойству Value объекта TextBox. WebControl будет автоматически кодировать его перед отображением.

+0

@ DarinDimitrov-Спасибо за помощь! – user441222

Смежные вопросы