gpt4 book ai didi

linq - LINQ 的 ExecuteCommand 是否提供针对 SQL 注入(inject)攻击的保护?

转载 作者:行者123 更新时间:2023-12-03 14:57:08 26 4
gpt4 key购买 nike

我遇到了需要使用 LINQ 的 ExecuteCommand 方法来运行插入的情况。

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

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

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

问题是这是否与参数化查询一样是 SQL 注入(inject)证明?

最佳答案

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

In my simple testing, it looks like the parameters passed in the ExecuteQuery and ExecuteCommand methods are automatically SQL encoded based on the value being supplied. So if you pass in a string with a ' character, it will automatically SQL escape it to ''. I believe a similar policy is used for other data types like DateTimes, Decimals, etc.



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

这对我来说似乎有点奇怪——大多数其他 .Net 工具都比“SQL 转义”更清楚;他们使用真实的查询参数。

关于linq - LINQ 的 ExecuteCommand 是否提供针对 SQL 注入(inject)攻击的保护?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/157924/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com