是dataadapter。更新容易出现SQL注入?

时间:2016-03-31 17:24:33

标签: sql sql-server

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

SELECT hits.product.v2ProductName AS other_purchased_products, COUNT(hits.product.v2ProductName) AS quantity
FROM [XXXXXXX.ga_sessions_XXXXXXXX]
WHERE fullVisitorId IN (
  SELECT fullVisitorId
  FROM [XXXXXXX.ga_sessions_XXXXXXXX]
  WHERE hits.product.v2ProductName CONTAINS 'blue footballs'
   AND totals.transactions>=1
  GROUP BY fullVisitorId)
 AND hits.product.v2ProductName IS NOT NULL
 AND hits.product.v2ProductName != 'blue footballs'
GROUP BY other_purchased_products
ORDER BY quantity DESC;

1 个答案:

答案 0 :(得分:0)

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

另一个需要考虑的选择是使用像Entity Framework这样的ORM(对象关系映射器)或者像Dapper那样更轻松的东西。