Библиотеки .NET для дезинфекции ввода?

Есть ли какие-либо тщательно протестированные библиотеки .NET для очистки данных от таких вещей, как script/sql injection?

Ответ 1

SQL-инъекция и межсайтовые скрипты (a.k.a. XSS или Script Injection) - это разные проблемы.

1) SQL Injection очень просто, всегда используйте параметризованные запросы (SQLParameter) и очень старайтесь НИКОГДА не выполнять sp_exec @query в хранимых процедурах T-SQL..Net параметризованные запросы не будут защищать от этой инъекции второго порядка.

2) XSS более сложно повсеместно смягчить, поскольку существует так много мест, в которые JavaScript можно вставлять в документы HTML. Рекомендации по использованию AntiXSS для кодирования пользовательских данных находятся на правильном пути. Используйте эту библиотеку перед вставкой пользовательских данных в выходные документы. К сожалению, если вы используете кодировку ASP.NET для управления сервером, все данные могут привести к двойному кодированию и отображению артефактов. Это происходит потому, что некоторые свойства управления кодируют данные, а другие - нет. Обратитесь к this table, чтобы узнать свойства, закодированные по умолчанию. Используйте Anti-XSS перед назначением любых свойств, которые не кодируются.

Ответ 2

Мне нравится использовать библиотеку Microsoft AntiXSS. Он бесплатный и довольно прост в использовании.

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

Ответ 4

AntiXSS можно использовать для предотвращения атак XSS.

Ответ 5

Я использовал библиотеку MS Anti XSS. Это очень полезно и легко использовать. Попробуйте сами, вам понравится. Текущая версия 4.0.

Ответ 6

Если вы используете ASP.NET 4.5, теперь вы можете использовать функции AntiXSS, которые поставляются в рамках.

Это части внешней библиотеки AntiXSS, которые были включены в ASP.NET 4.5:

  • HtmlEncode, HtmlFormUrlEncode и HtmlAttributeEncode
  • XmlAttributeEncode и XmlEncode
  • UrlEncode и UrlPathEncode (новый)
  • CssEncode