mysql - 哪些 SQL 注入(inject)方法不是 "destroyed"by mysql_real_escape_string();?

标签 mysql sql sql-injection mysql-real-escape-string

是否有一个 SQL 注入(inject)方法的列表不能仅使用 mysql_real_escape_string(); 和 utf8 编码来保护?

对于整数,我使用 intval(); 是否足够安全?

对于那些认为我想获得“教程”来破解任何人的人:不,我不会。我只想知道如何让我的应用程序更安全,我想知道它们是否 99% 安全以防黑客攻击

最佳答案

如果给定一个有效的数据库连接,mysql_real_escape_string() 应该在所有情况下都是安全的字符串数据(this answer 中描述的罕见异常(exception))。

但是,字符串之外的任何内容都不会转义:

$id = mysql_real_escape_string($_GET["id"]);

mysql_query("SELECT * FROM table WHERE id = $id");

仍然容易受到攻击,因为您不必“突破”字符串来添加恶意的附加命令。

关于mysql - 哪些 SQL 注入(inject)方法不是 "destroyed"by mysql_real_escape_string();?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6666596/

相关文章:

sql - SQL 注入(inject)中的双连字符/破折号。它们是用来做什么的?

php - 使用 PDO php 在 mysql 中插入符号 (&)?

ruby-on-rails - 确保我的 SQL 未注入(inject)接收值数组

mysql - SQL将多列的不同值连接成一行

php - 简单MySQL select查询某一字段并返回值

mysql - 为什么聚合函数不起作用,除非使用 GROUP BY 语句?

sql - 在几列之间显示具有最大值的列名称

php - PHP 中的 Mysql 更新和替换语法

MYSQL 查询左连接失败

c++ - 在 C++ 中通过 SSL 进行简单的数据库连接