【发布时间】:2019-09-02 04:18:20
【问题描述】:
我正在尝试保存一些 php 代码,以便在我目前租用的服务器上保存示例和代码模板。问题是当我向服务器发送 $ 时,它会将其保存在数据库中,没问题。但是当我查询数据时,它告诉我有一个 sql 注入并阻止了我查询表的 IP 地址。
有趣的是,我的表有类别,问题仅在我查询“category_id=3”时出现,其他类别没有显示 $ 的数据。
总的来说,我意识到这可能是个问题,但是我所有的输入都被转义了,并且在特殊情况下都有特殊的措施,而且我的所有查询都是由相同的函数形成的。
我尝试将 $ 更改为 &dollar ;为了解决这个问题,以便在我忘记转义或我不知道的情况下,php 不会将其识别为变量,但结果是相同的。
当我以纯文本格式保存 html 实体时,我真的不明白为什么这可能是 BitNinja 的一个主要问题。
我知道我可以将代码保存在文件中,绕过数据库或 base64 代码并将其保存,但这不是这里的问题。
【问题讨论】:
-
我不使用 Bitninja,也不知道它如何检测或报告 SQL 注入风险。它可能有误报。一般来说,使用查询参数是一种更安全且更容易的方法,可以保护您的代码免受 SQL 注入风险。也许 Bitninja 试图让你使用参数化查询而不是转义。
-
无论如何,这里几乎没有人可以评论您的代码的安全性,或者它是合法警告还是误报,因为您没有显示 Bitninja 所说的存在风险的代码。
标签: php security sql-injection firewall