gpt4 book ai didi

php - 在没有预先准备好的语句的情况下清理 MySQL 查询(PHP + 旧的 mysql 模块)

转载 作者:可可西里 更新时间:2023-11-01 08:38:03 27 4
gpt4 key购买 nike

注意:我看过这个问题:Preventing SQL injection without prepared statements (JDBC) .正如我预料的那样……答案是使用准备好的语句。我处于不同的环境中......所以我想知道最好的方法。

我正在使用下载的脚本 (phpsimplechat),作者在其中编写了他自己的简单 SQL 层(注意:它支持 PostgreSQL 和 MySQL)。不幸的是,我已经对它进行了一些测试,它容易受到 SQL 注入(inject)攻击。从功能的角度来看,该脚本可以满足我的所有需求,因此我想挽救它。

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

我读到 addslashes 不足以防止所有 SQL 注入(inject)尝试。 mysql_real_escape_string 使用安全吗?

最佳答案

是的,mysql_real_escape_string 如果您正确使用它,保证是安全的,即确保转义出现在查询中的所有字符串。

关于php - 在没有预先准备好的语句的情况下清理 MySQL 查询(PHP + 旧的 mysql 模块),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3951133/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com