2

我正在运行 OWASP Zap 作为我们代码的安全审查。

当我们使用preparedquery时检测到SQL注入,我正在努力确定为什么?我们代码的基础是:

DLPreparedQuery preparedQuery = this._env.Conn.Prepare("select a from Table1",
                    new DLDataTypes[] { DLDataTypes.BigInt, DLDataTypes.Char, DLDataTypes.BigInt, DLDataTypes.BigInt, DLDataTypes.Char, DLDataTypes.BigInt },
                    new string[] { "@P1", "@P2", "@P3", "@P4", "@P5", "@P6" },
                    DLQueryOptions.Default, -1);

object[,] objResult = (object[,])preparedQuery.Query(1, 'ABC', 'DEF', 1,'AAA',21);

我们还使用 antixss 转义所有用户输入文本

Microsoft.Security.Application.Encoder.HtmlEncode(inputData)

我应该查看 SQLServer 的设置吗?

提前致谢。

4

1 回答 1

0

没有使用preparedquery,但我建议你运行sql profiler,直到你识别出恶意语句。在确定语句的样子后,您很可能会知道该怎么做。

HtmlEncode 在这里不起作用。我建议您尝试用两个单引号替换单引号 '。这不是一个防弹解决方案,但它可能会给您带来良好的结果。

如果您的数据库处于完全恢复模式,您可以尝试使用一些第三方事务日志阅读器来扫描已执行的语句并尝试确定可能是什么问题。

于 2013-05-27T08:36:13.930 回答