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

Bri*_*ian 14 php mysql

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

Bjo*_*orn 18

反引号可以帮助您意外地使用SQL中的保留字名称.拿一个名为"where"的表,这是我同意的表的愚蠢名称,但是如果你用反引号包装它会很好.

  • 如果你有一个名为`password`的字段,就会发生这种情况. (6认同)
  • PostgreSQL中没有反引号是语法错误 (2认同)

Sar*_*raz 11

在MySQL查询中,在表名周围添加反引号是多么重要.它与安全性有关吗?

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

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

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

我建议你使用intval作为数字,mysql_real_escape_string函数用于你可能在查询中使用的任何变量.

  • 要添加到此答案... ANYTIME将变量放入SQL字符串中,这是SQL注入的机会.这些数据的来源并不重要,没有什么是真正安全的.永远逃避一切. (2认同)
  • 我最近学到的东西,mysql_real_escape_string()不会逃避反引号.如果您使用PHP变量作为表名,那么它可以被利用. (2认同)