【发布时间】:2015-11-05 14:28:10
【问题描述】:
我正在修复代码中的 SQL 注入。 其中一种方法执行存储过程并附加参数违反SQL注入规则:
sqlCmd.CommandText = "updateSalesReps @repNumber='" + RepNumber + "',
@ISONumber='" + ISONumber + "', @type='" + strUpdtType + "'";
现在,我正在添加参数:
sqlCmd.Parameters.AddWithValue("@rNumber", RepNumber);
sqlCmd.Parameters.AddWithValue("@isoNumber", ISONumber);
sqlCmd.Parameters.AddWithValue("@updateType",strUpdtType);
这是我的最终查询:
sqlCmd.CommandText = "updateSalesReps @repNumber=@repNumber,
@ISONumber=@isoNumber, @type=@updateType";
我的问题是在我的存储过程中是否可以使用...@repNumber=@repNumber...,否则会产生命名歧义?
【问题讨论】:
-
您应该查看Can we stop using AddWithValue() already? 并停止使用
.AddWithValue()- 它可能会导致意想不到和令人惊讶的结果...
标签: c# sql-injection sql-parametrized-query