例如,我可以将一些实体强制转换为IQueryable:
var myquery = mytesttable.AsQueryable();
var qText = "name="+ "\""+DynamicSearchCondition+ "\"";
myquery = myquery.Where(qText);
然后当运行查询时,从跟踪中可以看到传递的DynamicSearchCondition没有参数化。
最初我认为这不是防止SQL注入的,但我尝试了一些例子,就是无法破解这个。
那是否意味着它现在是SQL注入安全的(我认为是)?
如果是这样,那是否意味着所有IQueryable都是SQL注入安全的?
http://blogs.msdn.com/b/publicsector/archive/2008/08/21/preventing-sql-injection-with-the-entity-framework-and-data-services.aspx
不安全。 - johnny 5