Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
清理没有预共享语句的MySQL查询(PHP+;旧MySQL模块)_Php_Mysql_Sql Injection - Fatal编程技术网

清理没有预共享语句的MySQL查询(PHP+;旧MySQL模块)

清理没有预共享语句的MySQL查询(PHP+;旧MySQL模块),php,mysql,sql-injection,Php,Mysql,Sql Injection,注意:我已经看了这个问题:。正如我所料。。。答案是使用事先准备好的陈述。我的处境不同。。。所以我想知道最好的方法 我正在使用一个下载的脚本(phpsimplechat),作者在其中编写了自己的简单SQL层(注意:它支持PostgreSQL和MySQL)。不幸的是,我对它进行了一些测试,它很容易受到SQL注入的攻击。从特性的角度来看,脚本做了我想要的一切,所以我想挽救它 幸运的是,它是开源的。。。但是我不想重写所有的SQL查询来使用phpsimplechat中准备好的语句。第三方库使用自己的SQL

注意:我已经看了这个问题:。正如我所料。。。答案是使用事先准备好的陈述。我的处境不同。。。所以我想知道最好的方法

我正在使用一个下载的脚本(phpsimplechat),作者在其中编写了自己的简单SQL层(注意:它支持PostgreSQL和MySQL)。不幸的是,我对它进行了一些测试,它很容易受到SQL注入的攻击。从特性的角度来看,脚本做了我想要的一切,所以我想挽救它

幸运的是,它是开源的。。。但是我不想重写所有的SQL查询来使用phpsimplechat中准备好的语句。第三方库使用自己的SQL层而不是PDO。。。在这种情况下,使用的是较旧的mysql模块(因此,我不能使用预先准备好的语句。即使我更改了mysql->mysqli,我也必须处理他放在所有代码之上的“dbQuery”层)。我不需要PostgreSQL代码,所以答案可以是特定于MySQL的


我已经读到addslashes不足以防止所有SQL注入尝试。mysql\u real\u escape\u string是否可以安全使用?

是的,
mysql\u real\u escape\u string
如果您正确使用它,将保证安全,即确保查询中出现的所有字符串都被转义