我有几个 SQL CLR 项目作为程序集添加到我的 SQL Server 2005 中。它们是通过触发程序集的存储过程从我的 Web 应用程序访问的。
在我的 SQL 程序集中防止 SQL 注入(inject)的最佳做法是什么?
程序集有一堆代码可以构建疯狂的 SQL 语句(示例):
sqlBuff.Append("SELECT ");
// Always put replicate weight values on the first.
sqlBuff.Append(colBuff.ToString());
sqlBuff.AppendLine(" FROM ");
String tableNames = colTabNameHelper.GetTableNameList(colNames);
String joinStr = colTabNameHelper.CreateJoinStr(tableNames);
sqlBuff.Append(joinStr);
sqlBuff.AppendLine(" WHERE (");
sqlBuff.Append(inMatrix.WeightVar);
我也可以在这里防止注入(inject)吗?或者 .NET/SQL Server 有帮助吗?我应该为此担心吗?
最佳答案
避免注入(inject)攻击的 final方法是使用 Parameters .你能在嵌入式程序集中使用这些吗?
关于c# - SQL 程序集和 SQL 注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13637407/