0

所以我正在设置我的表单验证、输入、错误消息等......然后意识到我收集的很多信息需要在某个时候再次输出。

所以我把我的输入包装在:

Server.HtmlEncode(txtbox.text);

我还应该做些什么来确保我避免 XSS 类型的攻击?当我将数据写入页面时,我应该做些什么吗?

4

2 回答 2

1

从安全的角度来看,我们的 Web 表单是赤裸裸的并且 100% 易受攻击。我们需要查看数据传递给它们的所有方式并进行适当的测试:

* Form Fields
* URL Query Strings
* Cookies
* Database
* ViewState

安全 Web 应用程序的 MSDN 设计指南:http: //msdn.microsoft.com/en-us/library/aa302420.aspx

Microsoft 反跨站点脚本库:http: //msdn.microsoft.com/en-us/security/aa973814.aspx

代码分析工具 (CAT.NET): http ://www.microsoft.com/downloads/details.aspx?FamilyId=0178e2ef-9da8-445e-9348-c93f24cc9f9d&displaylang=en

ASP.NET 数据输入验证: http: //www.codersbarn.com/post/2008/11/01/ASPNET-Data-Input-Validation.aspx

编辑:即将推出,新的 Web 保护库 CTP:http: //blogs.msdn.com/securitytools/archive/2009/10/17/web-protection-library-ctp-release-coming-soon.aspx

于 2009-11-04T01:29:53.280 回答
1

我建议在将数据输出到页面时使用 HtmlEncode,而不是在收集数据时使用。来自Stack Overflow 播客 #58

不要对存储在数据库中的数据进行 HTML 编码!听取 Damien Guard和 Joel Spolsky的建议!您可以选择存储两种表示形式,但不要只存储 HTML;以最高精度处理原始数据。

链接

于 2009-11-04T02:50:24.820 回答