<%:%> против Microsoft анти-XSS библиотека - PullRequest
7 голосов
/ 29 июня 2010

В .net 4 есть новый сценарий <%:%>, который похож на <% =%>, но выполняет кодирование html.Люди поощряют использование этого нового синтаксиса.

Мой вопрос заключается в том, защищает ли <%:%> от XSS лучше, а также использование библиотеки Microsoft Anti XSS?один человек сказал мне никогда не использовать HTML Encode, поскольку он не очень хорошо защищает, и что я всегда должен использовать библиотеку Anti XSS (или другую библиотеку).Это все еще верно для <%:%>?Или я могу с уверенностью использовать <%:%>, зная, что это защитит мое приложение от XSS, как говорят люди?

Ответы [ 2 ]

9 голосов
/ 29 июня 2010

HttpUtility.HtmlEncode использует черный список (принцип исключений) для кодирования, который потенциально оставляет дверь открытой для новых обнаруженных уязвимостей в будущем. В библиотеке Anti-XSS (в настоящее время известной как библиотека веб-защиты и включающей в себя также код для уменьшения SQL-инъекций) используется подход белого списка (принцип включений), который немного закрывает дверь и должен обеспечить лучшую безопасность.

<%: ... %> является просто ярлыком для <%= Server.HtmlEncode(string) %> и, следовательно, обеспечивает безопасность кодера, используемого в вашем приложении.

Вы можете использовать любой кодировщик, который вам нравится, с новым синтаксисом <%: ... %>, и Фил Хаак написал отличную статью о , подключив библиотеку Anti-Xss в качестве кодировщика по умолчанию . Помните, что в настоящее время для работы библиотеки Anti-XSS 3.1 требуется среднее доверие - это решается в будущем выпуске.

1 голос
/ 29 июня 2010

Новый синтаксис должен использоваться только для экранирования необработанного текстового содержимого в HTML. РЕДАКТИРОВАТЬ : и атрибуты.

Для атрибутов , Javascript и других контекстов вы все равно должны использовать библиотеку Anti-XSS,

...