gpt4 book ai didi

php - 如何清理 MySQL 表名

转载 作者:行者123 更新时间:2023-11-29 01:55:41 24 4
gpt4 key购买 nike

这个简单的表名清理是否足以防止 SQL 注入(inject)?

$table = str_replace('`', '', $table);
$table = '`'.$table.'`';

注意:我使用的是 PDO。

最佳答案

如果您允许用户选择他们查询的表,“清理”并验证没有黑客攻击的唯一方法是拥有一个允许表的白名单。您的方法也将无法允许其他数据库模式。这也可以像从特定数据库中查询表列表一样简单。

我没有 mysql 实例来尝试查找错误的表名。我可以说虽然我想不出(或真正测试和验证)绕过它的方法,但我可以说我可以想到几种查询会直接失败的方法。尝试访问其他数据库 otherDB.tableName 或通过连接从多个表中进行选择。虽然这可能会导致错误,但您仍然不想冒险让别人找到可以通过的东西。

关于php - 如何清理 MySQL 表名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29928511/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com