Do Entity Framework功能是否会自动转义输入以防止注入?
在我的SQL DB层中,我有一个以nvarchar(max)
为输入的SPROC。
在我的EDMX中,SPROC映射到函数导入为methodName(string input)
我是否需要手动转义输入以防止注入,或者Entity Framework是否自动执行此操作?
答案 0 :(得分:4)
...取决于
EF does escape inputs对你来说,在大多数情况下你是安全的。
但是如果使用输入在过程中创建动态SQL或使用输入调用另一个函数或过程,则仍然会受到SQL注入攻击。
要防止SQL注入,必须遵循执行路径的最后部分并确保输入已经过验证。
答案 1 :(得分:2)
只需使用存储过程,除非要在以后执行的存储过程中构建动态SQL,否则不需要转义输入。