Подтвердить что ты не робот

Как использовать HTML-код в веб-формах

У меня есть приложение ASP.NET Web Forms. Существует страница с TextBoxes, и пользователи вводят термины поиска в те, которые используются для запроса базы данных.

Я знаю, что мне нужно предотвращать атаки JavaScript-инъекций. Как это сделать?

В MVC я бы использовал Html.Encode. В Web-формах он не распознается.

Спасибо!

4b9b3361

Ответ 2

Если вы используете ASP.NET 4 или новее, вы можете использовать этот синтаксис:

<%: Model.Username %>

Который будет HTML-кодировать выражение. Скотт Гу объясняет преимущества этого синтаксиса:

Мы выбрали синтаксис <%:%>, чтобы было легко быстро заменить существующие экземпляры <% =%> блоков кода. Это также позволяет вам легко выполнять поиск в вашей кодовой базе элементов <% =%>, чтобы найти и проверить любые случаи, когда вы не используете кодировку HTML в своем приложении, чтобы убедиться, что у вас правильное поведение.

Ответ 3

На веб-форматах вы можете позвонить

HttpUtility.HtmlEncode(foo);

Будьте осторожны, чтобы не закодировать дважды.

Ответ 4

Вы можете использовать Server.HtmlEncode (что соответствует HttpServerUtility.HtmlEncode), но у Microsoft есть лучшая библиотека защиты веб-сайтов, называемая AntiXSS, который вы можете скачать из CodePlex. Он включает в себя утилиту, которая использует белый список для HtmlEncoding (гораздо безопаснее и лучше, и рекомендуется OWASP, хотя они указывают на более старая версия). Он также имеет инструменты, которые позволяют вам получать безопасные фрагменты HTML и т.д.

Если вы не посмотрите ни на что другое, посмотрите OWASP top 10. Похоже, вы просто царапаете поверхность безопасности веб-приложений, и это лучший ресурс. Атаки на межсайтовых сценариях - это всего лишь одна из целых вещей, которые вам нужно защищать.

Это также тот, который вам нужно будет соответствовать, если вам нужно иметь дело с любым видом соответствия (PCI, красный флаг и т.д.)

Ответ 5

В Web Froms.Net v4.0 и выше вы можете использовать, как показано ниже:

<%
   string notificationIcon = "<i class='fa fa-plus fa-icon fa-stack-right-top'></i>";
%>
<%: new HtmlString(notificationIcon) %>

Microsoft Doc Link