3

我有几个 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 有帮助吗?我应该担心这个吗?

4

1 回答 1

2

避免注入攻击的最终方法是使用参数。你能在嵌入式程序集中使用这些吗?

于 2012-11-30T01:23:30.963 回答