2014-11-19 3 views
1

Мне нужно рассмотреть довольно большой проект .Net 4.0 и повторный фактор для предотвращения атак XSS. Первое, что я сделал, это включить requestValidation для сайта, есть ли что-нибудь еще, что я могу сделать на глобальном уровне, или это будет случай траления через каждую страницу, проверка ввода и html-кодирование вывода.Предотвращение атак XSS по всему сайту

Существует много страниц и, возможно, 300 классических страниц asp, которые все еще используются.

Является ли HtmlEncode() безопасным для использования или требуется установить пакет Microsoft AntiXSS.

+0

Вы прочитали все «связанные» ссылки там? ---> –

+0

https://www.owasp.org/index.php/XSS_%28Cross_Site_Scripting%29_Prevention_Cheat_Sheet –

+0

Многие из них, вся информация, уже изученная и примененная, из ответов SO. – DavidB

ответ

1

requestValidation - хороший подход.

  1. На глобальном уровне еще одна вещь, о которой я могу думать, - включить заголовок X-XSS-Protection во всех ответах HTTP. Его легко реализовать и дает вам некоторые собственные защиты, которые браузер (IE 8+, Chrome) может предлагать на основе шаблонов xss. X-XSS-Protection: 1; mode=block

  2. Вы можете взглянуть на Content-Security-Policy, но я думаю, что в вашем сценарии это может быть большой раскат для всего сайта.

Это что-то, о чем я мог думать из смягчения XSS на основе заголовка HTTP. Они носят общий характер и не применяются только к ASP.Net.

Отвечая на ваш другой вопрос Is HtmlEncode() safe to use or do I need to install Microsofts AntiXSS package от What is the benefit to make encoderType to AntiXssEncoder in a MVC application?

AntiXssEncoder использует белый список подход обнаружения вредоносных входы [Входы, которые приводят к Cross Site Scripting (XSS)].

Кодировщик по умолчанию в ASP.Net использует черный список.

Оба имеют выходное кодирование данных. С точки зрения безопасности всегда следует использовать подход, основанный на белом списке , по сравнению с черным списком для определения злобы.

Выдержка из http://weblogs.asp.net/jongalloway/using-antixss-4-1-beta-as-the-default-encoder-in-asp-net

1.AntiXSS является более безопасным за счет использования белого списка подход. Для многих проверок и сертификатов безопасности вам потребуется использовать кодировщик XSS , поскольку черный список всегда потенциально уязвим для неизвестных атак.

2. Новые браузеры имеют улучшенную фильтрацию XSS, но есть уязвимости в более раннем браузере (например, коммутатор UTF-7 charset), который не будет обнаружен, установленный кодером по умолчанию ASP.NET.

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