.NET库用于清理输入?

16

是否有经过全面测试的.NET库,可用于清理输入内容,以防止脚本/SQL注入等攻击?


Question 1: What is the difference between a compiler and an interpreter?Question 2: How do you debug a program? - fretje
8
@fretje,只有在您已经知道没有一个库可以同时完成两个功能的情况下,才会出现两个不同的问题。 - DevinB
对抗 SQL 注入攻击的输入数据清理(通常通过使用参数化命令在数据库层面完成)与对抗 XSS 攻击的输入数据清理(通常在将输入保存到数据库之前完成)是完全不同的事情。 - fretje
这个回答解决了你的问题吗?ASP.Net Core中的AntiXSS - Michael Freidgeim
5个回答

11

我喜欢使用Microsoft AntiXSS库。它是免费的,而且相当容易使用。

在防止SQL注入方面,我总是使用参数。同样,它们很容易使用,而且我不喜欢尝试转义特殊字符。如果你问我,那是灾难的食谱。


10

SQL注入和跨站脚本攻击(又称XSS或脚本注入)是不同的问题。

1)SQL注入非常容易,总是使用参数化查询(SQLParameter),并且尽力不要在T-SQL存储过程中执行sp_exec @query。 .Net参数化查询无法防止第二次注入。

2)对于XSS攻击,由于JavaScript可以插入到HTML文档的许多位置中,因此普遍缓解更为困难。推荐使用AntiXSS编码用户数据是正确的做法。在将用户数据插入输出文档之前,请使用此库。不幸的是,如果您正在使用ASP.Net服务器控件,所有数据的编码可能会导致双重编码和显示伪像。这是因为一些控件属性对数据进行编码,而其他属性则不是。请参考此表格查找默认编码的属性。在分配不编码任何属性之前,请使用Anti-XSS。


6

使用参数化命令而不是尝试清理字符串来防止SQL注入攻击,详情请参考此链接


3

AntiXSS 可以用于预防 XSS 攻击。


2

如果您正在使用ASP.NET 4.5,现在可以使用框架中提供的AntiXSS功能

以下是已纳入ASP.NET 4.5的外部AntiXSS库的部分内容:

  • HtmlEncodeHtmlFormUrlEncodeHtmlAttributeEncode
  • XmlAttributeEncodeXmlEncode
  • UrlEncodeUrlPathEncode(新)
  • CssEncode

需要包含 System.Web.dllusing System.Web;using System.Web.Security.AntiXss; - Hp93

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接