Есть ли какие-либо тщательно протестированные библиотеки .NET для очистки данных от таких вещей, как script/sql injection?
Библиотеки .NET для дезинфекции ввода?
Ответ 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-инъекции я всегда использую параметры. Опять же, они просты в использовании, и я не люблю пытаться избежать специальных символов. Это рецепт катастрофы, если вы спросите меня.
Ответ 3
Используйте параметризованные команды, вместо того, чтобы пытаться дезинформировать строки, чтобы защитить от SQL Injection.
Ответ 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