SQL 在 oracle 中注入经过清理的输入

SQL injection in oracle with sanitized input

我正在查看一些旧的 PHP 代码,试图弄清楚它是否容易受到 SQL 注入的攻击。我的老板认为这是安全的,但我犹豫是否要接受这一点。它正在使用 Oracle 数据库。

这是旧代码,查询是通过字符串连接 (sprintf) 构建的。但是,用户输入的字符串已删除所有连字符和空格(通过 str_replace),并在其上调用了 addslashes()。这种情况下是否还有被攻击的威胁?能举个例子吗?

自从编写代码以来,我们已经开始使用参数化查询,因此理想情况下我们将其更新为参数化查询,但我正在努力证明这样做的必要性。

这里有一些如何使用 addslashes 注入攻击的例子:

如果那一点点不能说服老板,那么可以在测试服务器上设置并使用上面链接中解释的内容创建针对代码的 POC 注入,以演示攻击。删除表非常引人注目,因为它会诱使脚本将数据库内容喷出到页面上。