用于清理输入的.NET库?

时间:2009-06-02 12:08:01

标签: .net security sanitization

是否有经过全面测试的.NET库来清理脚本/ sql注入等内容的输入?

6 个答案:

答案 0 :(得分:9)

我喜欢使用Microsoft AntiXSS library。它是免费的,非常容易使用。

对于SQL注入,我总是使用参数。同样,它们易于使用,我不喜欢试图逃避特殊字符。如果你问我,这是一个灾难的秘诀。

答案 1 :(得分:8)

SQL注入和跨站点脚本(例如,XSS或脚本注入)是不同的问题。

1)SQL注入非常简单,总是使用参数化查询(SQLParameter)并且很难在T-SQL存储过程中尝试sp_exec @query。 .Net参数化查询无法防止这种二阶注入。

2)XSS更难以普遍缓解,因为有很多地方可以将JavaScript插入到HTML文档中。使用AntiXSS编码用户数据的建议是正确的。在将用户数据插入输出文档之前使用此库。不幸的是,如果您使用ASP.Net服务器控件编码所有数据可能会导致双重编码和显示工件。发生这种情况是因为某些控件属性会编码数据而其他控制属请参阅this table以查找默认编码的属性。在分配给任何不编码的属性之前使用Anti-XSS。

答案 2 :(得分:6)

使用parameterised commands,而不是尝试清理字符串,以防止SQL注入。

答案 3 :(得分:3)

AntiXSS可用于防止XSS攻击。

答案 4 :(得分:0)

我使用过MS Anti XSS库。它非常有用且易于使用。亲自尝试,你会喜欢。当前版本是4.0。

答案 5 :(得分:0)

如果您使用的是ASP.NET 4.5,现在可以使用AntiXSS features that ship in the framework

这些是已整合到ASP.NET 4.5中的外部AntiXSS库的部分:

  • HtmlEncodeHtmlFormUrlEncodeHtmlAttributeEncode
  • XmlAttributeEncodeXmlEncode
  • UrlEncodeUrlPathEncode(新)
  • CssEncode