asp.net – 这个LINQ statment是否容易受SQL注入攻击?
|
这个LINQ数据库是否易受SQL注入攻击? var result = from b in context.tests
where b.id == inputTextBox.Text
select b;
其中上下文是实体,测试是一个表. 也可以这样将linq作为linq到sql或linq的实体? 解决方法简短的回答:LINQ不易受SQL注入攻击.长答案: LINQ不像SQL.幕后有一个完整的库,从编译器从代码生成的表达式树构建SQL,将结果映射到对象 – 当然,它会在事情上保证安全. 见LINQ to SQL FAQ:
在内部,这意味着当LINQ to SQL查询数据库时,而不是使用纯值,它将它们作为SQL参数传递,这意味着它们不能被数据库视为可执行代码.大多数(如果不是全部)ORM映射器也是如此. 比较这两种方法(完全伪代码): string name = "' ; DROP DATABASE master --"
run ("SELECT * FROM Authors WHERE Name = '" + name + "'") // oops!
// now we'd better use parameters
SqlParameter name = new SqlParameter ("@name","' ; DROP DATABASE master --")
run ("SELECT * FROM Authors WHERE Name = @name",name) // this is pretty safe
我建议您更深入地了解LINQ语句的实际意义,何时以及如何将其转化为真正的SQL.您可能想了解LINQ standard query operator translation,deferred execution,different LINQ providers等.在LINQ的情况下,就像任何抽象技术一样,知道幕后发生的事情非常有用. 附:每次我看到有关SQL注入的问题,我不禁要记住这个webcomic. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 如何在剃刀中获取页面原点?
- asp.net-mvc-4 – 从ASP.NET MVC Action调用ConfigureAwait
- asp.net-core – ASP .NET Core默认语言总是英文
- asp.net-web-api – WebApi2属性路由404
- asp.net-mvc – 比ASP.NET MVC中的隐藏表单字段更安全吗?
- asp.net-mvc – 具有IE条件注释的MVC4捆绑/缩小
- asp.net-mvc-3 – Editor用于收集我的模型中的项目
- .net – 索引和长度必须指向字符串中的位置?
- ASP.NET Core / MVC 6 ViewModel中的依赖注入(DI)
- asp.net-mvc – 在EF 6中设置命令超时
- asp.net – 你对Windows Workflow Foundation有什
- asp.net-mvc – 对集合中的每个项目使用DisplayT
- asp.net-web-api – 从OWIN中间件更改响应对象
- asp.net-mvc – ASP.NET MVC – 如何访问除Contr
- asp.net – 谁负责处理HttpPostedFile.InputStre
- asp.net-mvc – 无法加载文件或程序集”或其依赖
- asp.net – 在MVC和WebForms之间共享一个主 – 处
- 为什么[System.ComponentModel.ToolboxItem(fals
- 在应用程序配置中找不到LocalSqlServer或连接字符
- asp.net核心 – 我需要哪个包在asp.net 5中的图像
