ORM在哪里容易受到SQL注入攻击?

Bra*_*don 10 nhibernate orm entity-framework sql-injection

当使用ORM(实体框架,LINQ to SQL,NHibernate ......)时,SQL注入攻击是否受到设计的缓解?

如果没有,我应该在哪里进行一些额外的验证/清理以防止漏洞?

Dan*_*ger 5

大多数(如果不是全部)主流ORM使用参数化SQL,这将保护您免受直接SQL注入攻击.但是,应用程序层中的参数化SQL不会保护您免受潜在的SQL注入攻击.当除了ORM之外的某些内容直接连接SQL语句中的用户输入(例如连接用户输入以创建非参数化动态查询的批处理运行存储过程)时,会发生这些情况.请注意,这根本不是ORM问题,但我想我会提出这一点,指出参数化SQL只能保护您免受注入,如果它在任何地方使用,而不仅仅是在ORM中.