【发布时间】:2012-02-03 01:37:48
【问题描述】:
使用动态 LINQ 库 (link),它是否容易受到注入?以及(如果是的话)如何防止这种情况发生?
来自Security Considerations (Entity Framework)的一些背景:
LINQ to Entities 注入攻击:
虽然查询组合在 LINQ to Entities 中是可能的,但它是 通过对象模型 API 执行。与实体 SQL 查询不同, LINQ to Entities 查询不是通过使用字符串操作组成的 或连接,它们不受传统 SQL 的影响 注入攻击。
既然动态 SQL 是使用字符串组成的,这是否意味着它可能容易受到注入向量的影响?还是 LINQ to SQL 会根据动态 LINQ 库中的基础数据类型自动处理您的值的参数化?
或者它是完全安全的,因为动态查询将在内存中执行而不是针对 SQL(从而否定 SQL 索引的任何好处)?
我一直在努力理解 DynamicLibrary.cs 代码,但我确信我很容易忽略一些东西。
由于此问题与动态 LINQ 库本身有关,因此可以认为此问题适用于 linq-to-sql 和 linq-to-entities(尽管上面提到了实体框架)。
【问题讨论】:
标签: c# linq linq-to-sql linq-to-entities dynamic-linq