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