mysql - 使用 sql 转义的动态 mysql 查询是否与准备好的语句一样安全?

标签 mysql security sql-injection prepared-statement

我有一个应用程序,它可以通过将动态 mysql 查询与 mysql (mysqli) 真正的转义字符串结合使用而受益匪浅。如果我通过 mysql real escape 运行从用户那里收到的所有数据,它会和使用 mysql 准备语句一样安全吗?

最佳答案

是的,但有条件的是。

您需要正确转义 100% 的输入。并且您需要正确设置字符集(如果您使用的是 C API,则需要调用 mysql_set_character_set() 而不是 SET NAMES)。如果你错过了一件小事,你就会很脆弱。所以是的,只要你做对了……

这就是很多人会推荐准备好的查询的原因。不是因为它们更安全。但因为他们更宽容...

关于mysql - 使用 sql 转义的动态 mysql 查询是否与准备好的语句一样安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4771984/

相关文章:

Mysql 查询不在 WHERE 上返回结果,而是在 AND 上返回结果

php - Woocommerce 查询待处理订单

mysql - 根据 SUM 将位置值分配给行

c# - 通信安全 : Fiddler intercepts my talks. 如何保护我的应用程序?

java - 应用小程序的安全策略

security - JSF 安全 : bean method accessibilty

php - 什么时候应该使用 PHP mysqli_real_escape_string() 函数?

php - PHP 的 PDO 是否可以限制为单个查询?

java - 如果服务器端 hibernate 查询的字符串仅与整数连接,是否容易受到 SQL 注入(inject)的攻击?

php - 选择特定列并将其值传递给查询后,如何获取该列中的值?