内联 SQL 查询和实体框架触发的查询有啥区别?
Posted
技术标签:
【中文标题】内联 SQL 查询和实体框架触发的查询有啥区别?【英文标题】:What is the difference between in-line SQL queries and queries fired by Entity Framework?内联 SQL 查询和实体框架触发的查询有什么区别? 【发布时间】:2013-10-31 19:38:41 【问题描述】:我是实体框架的新手。
我在想编写内联 SQL 查询和实体框架之间有什么区别。如果内联 SQL 查询容易受到 SQL 注入攻击,那么 Entity Framework 如何更安全?
我看到的唯一区别是我们使用 LINQ 与 Entity Framework 交互,但内部 Entity Framework 类以某种语言与数据库交互。与内联查询相比,它的安全性如何?
【问题讨论】:
【参考方案1】:Entity Framework 具有用于参数化查询的内置功能,可防止注入在 SQL 注入中很重要的单引号等字符。只要您使用 ADO.NET 或类似框架以正确的方式参数化和构建查询,内联 SQL 也可以是安全的。
最后,如果您不清理输入并参数化查询,内联 SQL 可能会非常糟糕。 Entity Framework 只是在幕后为您完成所有这些工作,使其本质上更安全。
【讨论】:
以上是关于内联 SQL 查询和实体框架触发的查询有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章
在 PL SQL 中使用“执行”和目录执行查询语句有啥区别?