在MySQL查询中围绕表名反引用的重要性

时间:2009-12-26 08:00:24

标签: php mysql

在MySQL查询中,在表名周围添加反引号有多重要。它与安全性有关吗?如果根据用户输入在PHP中动态创建表名,是否可以通过表名进行MySQL注入攻击?

3 个答案:

答案 0 :(得分:17)

反引号可以帮助您意外地使用SQL中的保留字名称。拿一个名为“where”的表,对于我同意的表来说这是一个愚蠢的名字,但是如果你用反引号包装它就可以正常工作。

答案 1 :(得分:11)

  

在MySQL查询中,它有多重要   在表名周围添加反引号。   它有什么关系吗?   安全

就反引号而言,当mysql-specifcs名称与查询名称之间存在名称冲突时,我会使用它们。

  

MySQL注入攻击是否可行?   通过表名如果表   name是在PHP中动态创建的   根据用户输入?

当有用户输入时,您需要确保过滤并验证来自用户的输入。所以是的,存在安全隐患。

我建议你对数字使用 intval ,对你在查询中使用的任何变量使用 mysql_real_escape_string 函数。

答案 2 :(得分:3)

如果您的表名与关键字同名,例如选择,以下查询仍然有效:

select * from `select`;