代码之家  ›  专栏  ›  技术社区  ›  Carlos Muñoz Boom

实体框架、LinqToSQL和sql注入

  •  5
  • Carlos Muñoz Boom  · 技术社区  · 14 年前

    完全使用LinqToSQL或Entity Framewok的项目是否可能遭受SQL注入的影响。

    2 回复  |  直到 14 年前
        1
  •  10
  •   p.campbell    14 年前

    当您按预期使用这些框架时,即直接使用实体/表,则不使用所有字符串比较(即。 where name = 'smith' )是参数化的。

    唯一的弱点是:

    • 任何字符串都可以直接针对上下文执行。 dbContext.ExecuteQuery(); 用任何破坏性的绳子。

    • 使用给定的任何参数执行动态SQL的存储过程

        2
  •  3
  •   KristoferA    14 年前

    “视情况而定”。

    针对L2S或EF实体的普通LINQ查询是注入安全的,但您始终可以调用不安全的存储过程或函数。

    这显然是一种边缘情况,但人们编写开放注入的SPs/函数(在proc中用参数值组成字符串中的SQL)时确实发生了这种情况。