哪些ASP.NET命令可能导致不安全的代码?

时间:2009-07-19 03:01:07

标签: asp.net sql security

就个人而言,我尝试编写安全的ASP.NET代码。但是,我对我编写的代码变得非常偏执,因为我曾经为注册商(高欺诈目标)工作。是否有任何ASP.NET功能我应该仔细审查(除了SQL访问 - 我知道不要做动态SQL)。

2 个答案:

答案 0 :(得分:4)

这是一篇优秀的MSDN文章:Security Practices: ASP.NET 2.0 Security Practices at a Glance

摘录:

  

如何防止跨网站脚本

     

验证输入和编码输出。   通过验证来限制输入   类型,长度,格式和范围。使用   HttpUtility.HtmlEncode方法来   编码输出,如果它包含输入   来自用户,例如来自表单的输入   字段,查询字符串和cookie或   来自其他来源,例如数据库。   永远不要只是将输入回送给用户   没有验证和/或编码   数据。以下示例说明了如何操作   编码表单字段。

Response.Write(HttpUtility.HtmlEncode(Request.Form["name"]));
     

如果返回包含的URL字符串   输入到客户端,使用   HttpUtility.UrlEncode方法进行编码   这些URL字符串,如下所示。

Response.Write(HttpUtility.UrlEncode(urlString));
     

如果您有需要接受的网页   一系列HTML元素,例如   通过某种丰富的文本输入   字段,您必须禁用ASP.NET   请求验证页面。

     

启用自定义错误以保持错误隐私

<customErrors mode="On" defaultRedirect="YourErrorPage.htm" />

答案 1 :(得分:1)

永远不要相信用户输入。永远不要假设客户端验证会阻止错误的输入数据。始终确保web.config中的ValidateRequest =“true”和EnableEventValidation =“true”:

请参阅Request ValidationASP.NET Security Tutorials