Как я защищаю от атак XSS в таких атрибутах, как src?
=====================================================

 Поэтому я создавал дезинфицирующее средство C # html, используя html-маневренность с белым списком. Он отлично работает, за исключением таких случаев: 

```
<img src="jav	ascript:alert('BadStuff');"> 

```
  Я хочу, чтобы разрешить атрибут src, а не вредоносные вещи внутри него, очевидно. Все, что я искал, только что рекомендовал белый список для тегов и их атрибутов. Как бы вы справлялись с чем-то вроде этого? Я знаю, что это не будет работать ни в одном более новом браузере, но я не очень хорошо знаком с безопасностью, и я уверен, что есть другие умные вещи, которые могли бы сделать атакующие. 

 Атаки межсайтового скриптинга (XSS) используют уязвимости в проверке веб-страниц путем ввода кода сценария на стороне клиента. Общие уязвимости, которые делают ваши веб-приложения восприимчивыми к межсайтовым сценариям атаки, включают в себя неспособность правильно проверить ввод, неспособность кодировать вывод и доверять данным, полученным из общей базы данных. Чтобы защитить ваше приложение от атак межсайтовых скриптов, предположите, что все входы вредны. Ограничьте и подтвердите все входные данные. Кодировать все выходные данные, которые могут включать потенциальные символы HTML. Сюда относятся данные, считанные из файлов и баз данных. 

 Один из самых серьезных примеров атаки на межсайтовый скриптинг возникает, когда злоумышленник пишет сценарий для получения файла cookie аутентификации, который обеспечивает доступ к доверенному сайту, а затем отправляет куки-файл в веб-адрес, известный злоумышленнику. Это позволяет злоумышленнику обмануть законную идентификацию пользователя и получить незаконный доступ к веб-сайту. 

 Общие уязвимости, которые делают ваше веб-приложение восприимчивым к атакам межсайтового сценария, включают: 

* Неспособность ограничить и подтвердить ввод.
* Ошибка при кодировании вывода.
* Доверие к данным, полученным из общей базы данных.

 Методические рекомендации 

 Двумя наиболее важными контрмерами для предотвращения межсайтовых сценариев являются: 

* Ограничить ввод.
* Кодировать вывод.

 **Резюме шагов** 

 Чтобы предотвратить межсайтовый скриптинг, выполните следующие шаги: 

 **Шаг 1.** Проверьте, включена ли проверка запроса ASP.NET. 

 **Шаг 2.** Просмотрите код ASP.NET, который генерирует вывод HTML. 

 **Шаг 3.** Определите, содержит ли вывод HTML входные параметры. 

 **Шаг 4** . Просмотрите потенциально опасные HTML-теги и атрибуты. 

 **Шаг 5** . Оценить контрмеры. 

 Подробные сведения см. В 2-й ссылке. 

 Рекомендации: 

 ***[Межсайтовый скриптинг объясняется: Как предотвратить атаки XSS](http://www.computerweekly.com/tip/Cross-site-scripting-explained-How-to-prevent-XSS-attacks)*** 

 ***[Практическое руководство. Предотвращение межсайтовых сценариев в ASP.NET](http://msdn.microsoft.com/en-us/library/ff649310.aspx)***