Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.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 MVC中的SQL注入控制_Asp.net_Asp.net Mvc_Sql Injection - Fatal编程技术网

Asp.net MVC中的SQL注入控制

Asp.net MVC中的SQL注入控制,asp.net,asp.net-mvc,sql-injection,Asp.net,Asp.net Mvc,Sql Injection,这是我第一次使用MVC进行开发,我想让它更安全 当我使用HtmlEncode时,它会将字符串转换为等效的HTML字符串 用户可以在搜索中输入例如“ali”或“ali”——它们存在于我的数据库中。如何从SQL注入控制我的搜索和登录 还有防止脚本注入的任何教程或最佳实践吗?如果您使用LINQ执行数据库查询,它将为您消除这种SQL注入风险。LINQ和实体框架已经为您检查了SQL注入 但无论如何,您都应该阅读文档: LINQ(SQL注入攻击部分) 实体框架(查询的安全注意事项部分) 希望有帮助 只要使用

这是我第一次使用MVC进行开发,我想让它更安全

当我使用HtmlEncode时,它会将字符串转换为等效的HTML字符串

用户可以在搜索中输入例如“ali”或“ali”——它们存在于我的数据库中。如何从SQL注入控制我的搜索和登录


还有防止脚本注入的任何教程或最佳实践吗?

如果您使用LINQ执行数据库查询,它将为您消除这种SQL注入风险。

LINQ和实体框架已经为您检查了SQL注入

但无论如何,您都应该阅读文档:

LINQ(SQL注入攻击部分)

实体框架(查询的安全注意事项部分)


希望有帮助

只要使用参数化查询或类似NHibernate或Entity Framework的ORM,就不必采取任何措施来阻止SQL注入。参数在实际SQL语句之外传递给服务器,作为对服务器的RPC调用的一部分。出于性能原因,大多数ORM使用参数化查询,因此它们不易受到SQL注入的攻击

只有通过连接字符串值来创建SQL语句时,才可能进行SQL注入


也就是说,为了防止脚本注入攻击,您仍然必须对用户输入保持警惕。幸运的是,ASP.NET MVC已经提供了一种请求验证机制(请参阅)

如何访问数据库?林克?实体框架?我使用的是普通框架,您更喜欢LINQ还是实体框架查看此。。。。两者都将为您检查sql注入…谢谢脚本注入如何请通过提及如何访问数据库来改进。谢谢它是否支持ROM数据库,脚本注入如何please@AMH我认为这应该是另一个问题,但这个链接可能会有帮助:请选择LINQ还是EF在我的特殊情况下,我更喜欢EF,但我不知道你想构建什么。。。实际上,我的决定是读到我有一个包含我的网站的数据库,并将连接、添加、从itlet中删除我们,但我厌倦了删除数据库,我知道通过参数传递值来删除数据库,这与传递给参数的内容无关(通过参数,我指的是DbParameter派生对象,如SqlParameter(),它将以简单字符串的形式传递给服务器。它永远不会执行。如果在应用程序的其他部分中使用存储的值通过字符串连接构造SQL语句,您仍然可能会遇到问题。