С .net 4 существует новое <%: %> корпус сценария это похоже <на % = %>, но делает HTML, кодируют. Люди поощряют использование этого нового синтаксиса.
Мой вопрос, делает <%: %> защищает от XSS лучше или а также пользование библиотекой Microsoft Anti XSS?
Человек Защиты Microsoft однажды говорил мне никогда просто использованию, которое Кодирует HTML, поскольку это не защищает очень хорошо и что я должен всегда пользоваться библиотекой Anti XSS (или другой библиотекой). Это все еще верное с <%: %>? Или могу я уверенно использовать <%: %> знание это собирается защитить мое приложение от XSS как люди, говорят?
HttpUtility.HtmlEncode
использует подход к кодированию с использованием черного списка (принцип исключений), который потенциально оставляет приоткрытую дверь для новых уязвимостей в будущем. Библиотека Anti-XSS (теперь известная как библиотека веб-защиты и также включает код для смягчения SQL-инъекций) использует подход с использованием белого списка (принцип включений), который немного закрывает дверь и должен обеспечивать лучшую безопасность.
<%: ...%>
- это просто ярлык для <% = Server.HtmlEncode (string)%>
и, следовательно, обеспечивает безопасность кодировщика, используемого в вашем приложении.
Вы можете использовать любой кодировщик с новым синтаксисом <%: ...%>
, и у Фила Хаака есть отличная статья о подключении библиотеки Anti-Xss в качестве кодировщика по умолчанию. . Имейте в виду, что в настоящее время для работы библиотеки Anti-XSS 3.1 требуется средний уровень доверия - это будет исправлено в будущих выпусках.
Новый синтаксис должен быть используется для экранирования необработанного текстового содержимого в HTML. РЕДАКТИРОВАТЬ : и атрибуты.
Для атрибутов , Javascript и других контекстов вы все равно должны использовать библиотеку Anti-XSS,