当前位置:  开发笔记 > 后端 > 正文

LINQ的ExecuteCommand是否提供SQL注入攻击保护?

如何解决《LINQ的ExecuteCommand是否提供SQL注入攻击保护?》经验,为你挑选了1个好方法。

我有一种情况需要使用LINQ的ExecuteCommand方法来运行插入.

类似的东西(为了这个问题的目的简化):

object[] oParams = { Guid.NewGuid(), rec.WebMethodID };

TransLogDataContext.ExecuteCommand (
"INSERT INTO dbo.Transaction_Log (ID, WebMethodID) VALUES ({0}, {1})",
oParams);

问题是,这是否是SQL注入证明,参数化查询的方式相同?



1> Joel Coehoor..:

做了一些研究,我发现了这个:

在我的简单测试中,看起来ExecuteQuery和ExecuteCommand方法中传递的参数会根据提供的值自动进行SQL编码.因此,如果传入带有'字符的字符串,它将自动将SQL转义为''.我相信类似的策略用于其他数据类型,如DateTimes,Decimals等.

http://weblogs.asp.net/scottgu/archive/2007/08/27/linq-to-sql-part-8-executing-custom-sql-expressions.aspx
(您可以向下滚动查找)

这对我来说似乎有点奇怪 - 大多数其他.Net工具比"SQL逃逸"更好; 他们使用真实的查询参数.


评论者,ScottGu,\不仅仅是一个网上随机的人!http://en.wikipedia.org/wiki/Scott_Guthrie
推荐阅读
mobiledu2402851173
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有