在MySQL查询中,在表名周围添加反引号有多重要。它与安全性有关吗?如果根据用户输入在PHP中动态创建表名,是否可以通过表名进行MySQL注入攻击?
答案 0 :(得分:17)
反引号可以帮助您意外地使用SQL中的保留字名称。拿一个名为“where”的表,对于我同意的表来说这是一个愚蠢的名字,但是如果你用反引号包装它就可以正常工作。
答案 1 :(得分:11)
在MySQL查询中,它有多重要 在表名周围添加反引号。 它有什么关系吗? 安全
就反引号而言,当mysql-specifcs名称与查询名称之间存在名称冲突时,我会使用它们。
MySQL注入攻击是否可行? 通过表名如果表 name是在PHP中动态创建的 根据用户输入?
当有用户输入时,您需要确保过滤并验证来自用户的输入。所以是的,存在安全隐患。
我建议你对数字使用 intval ,对你在查询中使用的任何变量使用 mysql_real_escape_string 函数。
答案 2 :(得分:3)
如果您的表名与关键字同名,例如选择,以下查询仍然有效:
select * from `select`;