Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MySQL查询中表名周围打勾的重要性_Php_Mysql - Fatal编程技术网

Php MySQL查询中表名周围打勾的重要性

Php MySQL查询中表名周围打勾的重要性,php,mysql,Php,Mysql,在MySQL查询中,在表名周围加上反勾号有多重要。这和安全有关吗?如果在PHP中根据用户输入动态创建表名,是否可能通过表名进行MySQL注入攻击?如果您的表名与关键字同名,例如select,则以下查询仍然有效: select * from `select`; 例如,反勾号可以帮助您避免意外使用SQL中的保留字名称。以一个名为“where”的表格为例,我同意这是一个愚蠢的表格名称,但如果你用反勾号将其包装起来,它会很好地工作 在MySQL查询中,它有多重要 在表名周围加上反勾号。 这跟我有什么关

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

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

select * from `select`;

例如,反勾号可以帮助您避免意外使用SQL中的保留字名称。以一个名为“where”的表格为例,我同意这是一个愚蠢的表格名称,但如果你用反勾号将其包装起来,它会很好地工作

在MySQL查询中,它有多重要 在表名周围加上反勾号。 这跟我有什么关系吗 保安

就倒勾而言,当mysql指定的名称和来自查询的名称之间存在名称冲突时,我会使用倒勾

MySQL注入攻击是否可能 通过表名(如果该表 名称是在PHP中动态创建的 基于用户输入

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


我建议您对数字使用intval,对查询中可能使用的任何变量使用mysql\u real\u escape\u string函数。

当您有一个名为
password
的字段时,这种情况经常发生。谢谢,我学到了一些新东西。我猜在一个名为“order”的列上加上反勾也可以避免与保留字冲突。我们是否也需要在PostgreSQL中使用它们?要添加到这个答案中。。。只要将变量放入SQL字符串中,就有机会进行SQL注入。不管这些数据来自哪里,没有什么是真正安全的。总是逃避一切。我最近学到的一些东西,mysql\u real\u escape\u string()不会逃避回击。如果使用PHP变量作为表名,则可以利用它。