是否有可能使用完全LinqToSQL或Entity Framewok遭受SQL注入的项目。实体框架,LinqToSQL和sql注入
我认为这可能不是因为ORM生成的SQL应该是免费的sql注入。但我不确定。
是否有可能使用完全LinqToSQL或Entity Framewok遭受SQL注入的项目。实体框架,LinqToSQL和sql注入
我认为这可能不是因为ORM生成的SQL应该是免费的sql注入。但我不确定。
当您按照预期使用这些框架时,即直接使用这些实体/表,那么没有。所有字符串比较(即where name = 'smith'
)都被参数化。
唯一脆弱点是:
任何字符串可以直接抵靠的上下文中执行。 dbContext.ExecuteQuery();
与任何种类的破坏性字符串。
执行使用任何给定的参数的
VS2012开箱即用。 _其中(a => a.column ==“Quote'”)_确实转化为绑定var _ @ 1 = [Extent1]。[column] _。和_ Where(a => a.column!=“Quote'”)_翻译成_ N'Quote'''= [Extent1]。[column] _ – 2013-04-08 20:59:54
“这取决于”。
针对L2S或EF实体的简单LINQ查询是注入安全的,但您始终可以调用不是注入安全的存储过程或函数。
这显然是一个边缘情况,但是它发生在人们编写SPs /注入时打开的函数(使用proc中的参数值构成SQL中的字符串)。
重复动态SQL存储过程http://stackoverflow.com/questions/473173/will-using-linq-to-sql-help-prevent-sql -injection – 2010-08-13 04:14:54
不完全重复,因为这也要求实体框架。此外,答案实际上是说在某些情况下可能会发生攻击 – 2010-08-13 04:36:03