Asp.net Preparedquery易受Sql注入攻击
我正在运行OWASP Zap作为我们代码的安全审查 使用preparedquery时检测到SQL注入,我很难确定原因是什么?我们准则的基础是:Asp.net Preparedquery易受Sql注入攻击,asp.net,sql-server,c#-4.0,webforms,owasp,Asp.net,Sql Server,C# 4.0,Webforms,Owasp,我正在运行OWASP Zap作为我们代码的安全审查 使用preparedquery时检测到SQL注入,我很难确定原因是什么?我们准则的基础是: DLPreparedQuery preparedQuery = this._env.Conn.Prepare("select a from Table1", new DLDataTypes[] { DLDataTypes.BigInt, DLDataTypes.Char, DLDataTypes.BigInt, D
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);
我们还使用AntiXS转义所有用户输入的文本
Microsoft.Security.Application.Encoder.HtmlEncode(inputData)
我应该在SQLServer上查看哪些设置
提前感谢。尚未使用preparedquery,但我建议您运行sql profiler,直到识别出恶意语句。在确定语句的外观之后,您很可能知道该怎么做 HtmlEncode在这里不起作用。我建议你试着用两个单引号代替单引号。这不是一个防弹的解决方案,但它可能会给你带来好的结果
如果您的数据库处于完全恢复模式,您可以尝试使用第三方事务日志读取器扫描已执行的语句,并尝试确定可能存在的问题。使用antixss进行的转义是完全错误的!HtmlEncode(必须)仅在网页上呈现文本时使用-与sql注入和要保存在sql上的数据无关。