Bitninja 是不是有 sql 注入误报?
Posted
技术标签:
【中文标题】Bitninja 是不是有 sql 注入误报?【英文标题】:Does Bitninja have sql injection false positives?Bitninja 是否有 sql 注入误报? 【发布时间】:2019-09-02 04:18:20 【问题描述】:我正在尝试保存一些 php 代码,以便在我目前租用的服务器上保存示例和代码模板。问题是当我向服务器发送 $ 时,它会将其保存在数据库中,没问题。但是当我查询数据时,它告诉我有一个 sql 注入并阻止了我查询表的 IP 地址。 有趣的是,我的表有类别,问题仅在我查询“category_id=3”时出现,其他类别没有显示 $ 的数据。 总的来说,我意识到这可能是个问题,但是我所有的输入都被转义了,并且在特殊情况下都有特殊的措施,而且我的所有查询都是由相同的函数形成的。
我尝试将 $ 更改为 &dollar ;为了解决这个问题,以便在我忘记转义或我不知道的情况下,php 不会将其识别为变量,但结果是相同的。 当我以纯文本格式保存 html 实体时,我真的不明白为什么这可能是 BitNinja 的一个主要问题。 我知道我可以将代码保存在文件中,绕过数据库或 base64 代码并将其保存,但这不是这里的问题。
【问题讨论】:
我不使用 Bitninja,也不知道它如何检测或报告 SQL 注入风险。它可能有误报。一般来说,使用查询参数是一种更安全且更容易的方法,可以保护您的代码免受 SQL 注入风险。也许 Bitninja 试图让你使用参数化查询而不是转义。 无论如何,这里几乎没有人可以评论您的代码的安全性,或者它是合法警告还是误报,因为您没有显示 Bitninja 所说的存在风险的代码。 【参考方案1】:假设您使用的是 WAF 模块,那么是的,它确实会产生误报(几乎所有 WAF 检测 SQL 注入都会产生误报)。在他们的blog entry 中,他们声明:
我们的 WAF 2.0 模块可保护您免受 SQL 注入。
在官方的 OWASP 核心规则集中,我们有一个针对这种攻击的规则集 向量。这是一个非常通用的规则集,因此如果您需要使用它 必须非常小心。我建议如果您启用它,请仅在日志中使用它 模式。
正如比尔在 cmets 中提到的,我们需要查看代码和数据,以确定这是否是真正的误报。
【讨论】:
以上是关于Bitninja 是不是有 sql 注入误报?的主要内容,如果未能解决你的问题,请参考以下文章