我有几个 SQL CLR 项目作为程序集添加到我的 SQL Server 2005 中。它们是通过触发程序集的存储过程从我的 Web 应用程序访问的。
如何以及在我的 SQL 程序集中防止 SQL 注入的最佳实践是什么?
这些程序集有一堆代码可以构建疯狂的 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);
我也可以在这里防止注射吗?或者.NET/SQL Server 有帮助吗?我应该担心这个吗?