Почему мне нужно остановить использование <% =...%> Для рендеринга и начала использования <%:...%> в Asp.net?
Я где-то читал, что я должен прекратить использовать <%= … %>
для рендеринга и начала использования <%: … %>
.
Может ли кто-нибудь объяснить, каковы различия между <%= … %>
и <%: … %>
, и каковы преимущества использования того или иного?
Вот слайдек, который я читаю
http://ssmith-presentations.s3.amazonaws.com/ASPNET_TipsTricksTools_April2010.zip
Вот ссылки, которые вы можете получить от
http://weblogs.asp.net/scottgu/archive/2010/04/06/new-lt-gt-syntax-for-html-encoding-output-in-asp-net-4-and-asp-net-mvc-2.aspx
http://haacked.com/archive/2009/11/03/html-encoding-nuggets-aspnetmvc2.aspx
Ответы
Ответ 1
На самом деле это короткая версия <% = Server.HtmlEncode(string)% >
Смотрите эту ссылку
http://weblogs.asp.net/scottgu/archive/2010/04/06/new-lt-gt-syntax-for-html-encoding-output-in-asp-net-4-and-asp-net-mvc-2.aspx
Лучше практика избегать Javascript-атак и т.д. Поэтому, если кто-то добавляет комментарий к вашему блогу, например, который скажет iframe html или javascript в нем, тогда он будет отображаться точно так же, как набирается, а не с JS или iframe фактически работает.
Ответ 2
В принципе, <%:
будет кодировать HTML-код, а <%=
- нет. Это помогает предотвратить атаки XSS. Подробнее об этом читайте в этой серии сообщения в блоге от Фила Хаака.