Do Entity Framework功能是否自动转义输入以防止注入?

时间:2012-06-19 18:50:56

标签: c# .net entity-framework sql-injection edmx

Do Entity Framework功能是否会自动转义输入以防止注入?

在我的SQL DB层中,我有一个以nvarchar(max)为输入的SPROC。 在我的EDMX中,SPROC映射到函数导入为methodName(string input) 我是否需要手动转义输入以防止注入,或者Entity Framework是否自动执行此操作?

2 个答案:

答案 0 :(得分:4)

...取决于

EF does escape inputs对你来说,在大多数情况下你是安全的。

但是如果使用输入在过程中创建动态SQL或使用输入调用另一个函数或过程,则仍然会受到SQL注入攻击。

要防止SQL注入,必须遵循执行路径的最后部分并确保输入已经过验证。

答案 1 :(得分:2)

只需使用存储过程,除非要在以后执行的存储过程中构建动态SQL,否则不需要转义输入。