首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是数据适配器。更新容易发生SQL注入吗?

是数据适配器。更新容易发生SQL注入吗?
EN

Stack Overflow用户
提问于 2016-04-01 01:24:33
回答 1查看 288关注 0票数 0

下面的代码容易被sql注入吗?据我所知,CommandBuilder在生成SELECT / UPDATE / INSERT命令时总是使用参数化查询。

代码语言:javascript
复制
using (var dataAdapter = new SqlDataAdapter(selectCommand))
using (var cmdBuilder = new SqlCommandBuilder(dataAdapter))
{
cmdBuilder.ConflictOption = ConflictOption.OverwriteChanges;

using (var dataset = new DataSet())
{


dataAdapter.UpdateBatchSize = 0;
dataAdapter.AcceptChangesDuringFill = false;
dataAdapter.AcceptChangesDuringUpdate = false;

stopwatch.Start();
dataAdapter.Fill(dataset, "ABC");
dataset.AcceptChanges();
ds.tables[0].Rows["ABC"] = MALICIOUS SQL INJECTION ATTEMPT; // let's
say this is where the end user could slip malicious string he wanted
into


dataAdapter.Update(dataset, " ABC");
}
}
EN

回答 1

Stack Overflow用户

发布于 2016-04-01 01:34:22

CommandBuilders在生成insert、update和delete语句时使用参数化查询。因此,您不会受到来自它们的SQL注入攻击。在参数化查询中,解析带有参数标记的SQL语句,然后单独推送参数。参数中的值不会被SQL查询解析器解析,因此代码路径中没有任何地方可以进行注入。

另一个要考虑的选择是使用ORM (对象关系映射器),如实体框架或更轻量级的Dapper。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36339846

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档