Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
哪些ASP.NET命令会导致代码不安全?_Asp.net_Sql_Security - Fatal编程技术网

哪些ASP.NET命令会导致代码不安全?

哪些ASP.NET命令会导致代码不安全?,asp.net,sql,security,Asp.net,Sql,Security,就我个人而言,我尝试编写安全的ASP.NET代码。然而,我对自己编写的代码变得相当偏执,因为我曾经为注册商工作(高欺诈目标)。是否有任何ASP.NET函数我应该仔细研究一下(SQL access除外-我知道不必使用动态SQL)。这是一篇优秀的MSDN文章: 摘录: 如何防止跨站点脚本编写 验证输入和编码输出。 通过验证输入是否正确来约束输入 类型、长度、格式和范围。使用 HttpUtility.HtmlEncode方法 如果输出包含输入,则对其进行编码 来自用户,例如来自表单的输入 字段、查询字

就我个人而言,我尝试编写安全的ASP.NET代码。然而,我对自己编写的代码变得相当偏执,因为我曾经为注册商工作(高欺诈目标)。是否有任何ASP.NET函数我应该仔细研究一下(SQL access除外-我知道不必使用动态SQL)。

这是一篇优秀的MSDN文章:

摘录:

如何防止跨站点脚本编写

验证输入和编码输出。 通过验证输入是否正确来约束输入 类型、长度、格式和范围。使用 HttpUtility.HtmlEncode方法 如果输出包含输入,则对其进行编码 来自用户,例如来自表单的输入 字段、查询字符串和cookie或 来自其他来源,如数据库。 永远不要只是将输入回显给用户 无需验证和/或编码 数据。下面的示例演示了如何 对表单字段进行编码

Response.Write(HttpUtility.HtmlEncode(Request.Form["name"]));
如果返回包含 输入到客户端,使用 要编码的HttpUtility.UrlEncode方法 这些URL字符串,如下所示

Response.Write(HttpUtility.UrlEncode(urlString));
如果您有需要接受的页面 一系列HTML元素,例如 通过某种形式的富文本输入 字段,则必须禁用ASP.NET 请求对页面进行验证

启用自定义错误以保持错误的私密性

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


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


请参阅和。

谢谢米奇!我很感激你的回答,但是。。。您给出的回答让我相信,这是针对未经scaped SQL或非DB驱动代码的一种对策。原因是它都是基于用户输入存储的。而且,根据我的经验,URL编码的事情往往会“过度编码”,因为它必须遵守URL编码规则(非常严格)。另外,使用ASP.NET,我会尽量避免任何响应。我发现前面控件中的ASP.NET代码使我的HTML具有更好的结构意识。不过我会给你+1,因为你在技术上仍然有效:)