如何从phpmyadmin隐藏information_schema数据库

0pizxfdo  于 2023-10-20  发布在  PHP
关注(0)|答案(5)|浏览(163)

我可以隐藏数据库,不写这行

$cfg['Servers'][$i]['hide_db'] = 'information_schema';

在phpmyadmin中的php.inc.php文件中。
可以通过像http://www.test.com/phpmyadmin/index.php?db=information_schema&token=3ba37ae1e41f6a10e4afc7c69b934bba这样的URL访问此数据库的内容
如何删除对information_schema数据库的完全访问?

ozxc1zmp

ozxc1zmp1#

请按照以下步骤操作:
1.打开phpMyAdmin,验证自己,如果需要的话
1.转到 * 设置>功能>数据库 *
1.将您想要隐藏的数据库列表放入 Hide databases 字段,用管道(|)分隔每个条目,即:information_schema|performance_schema|mysql|phpmyadmin
1.点击 * 应用 * 按钮
根据下面 KeshV 的评论,根据您的操作系统(Linux,Windows等)和环境配置,您可能需要有 config.inc.php 文件可写,以便在服务器或浏览器重新启动之间保持上述更改。
但是,在某些配置和某些 phpMyAdmin 版本中,上述设置直接存储在cookie中,即使在 * config.inc.php * 文件中添加注解也会保留。

w51jfk4q

w51jfk4q2#

您甚至可以使用管道分隔符隐藏多个数据库

$cfg['Servers'][$i]['hide_db'] = 'information_schema|performance_schema|mysql';
mfuanj7w

mfuanj7w3#

如果你也想限制用户从你发布的URL访问information_schema,并且你对hide_db配置指令不满意,那么你可以在phpmyadmin的php.inc.php文件中添加以下行。

if($_GET['db'] == 'information_schema')exit;
p5cysglq

p5cysglq4#

我会写这篇评论的最高投票的答案,但我还没有足够的声誉。
当指定多个数据库时,请记住它在RegEx规则下运行(如帮助所述)。因此,虽然可能不太可能,但将“information_schema|性能模式|mysql”也会隐藏任何包含这些字符串的数据库。
相反,将“^information_schema|性能模式|mysql$"。在正则表达式中,^表示字符串的开始,$表示字符串的结束。
这意味着您也可以通过部分字符串隐藏数据库。虽然您应该始终通过MySQL用户权限控制数据库访问,但您可以使用部分匹配隐藏数据库组。例如,如果您不希望所有测试数据库都可见,您可以在隐藏数据库字段中输入“^test_”,它将隐藏所有以test_开头的数据库。EG测试_123,测试_456。

qlfbtfca

qlfbtfca5#

将以下内容添加到phpymyadmin文件夹中的config.inc.php文件:

$cfg['Servers'][$i]['hide_db'] = 'information_schema|performance_schema|mysql|phpmyadmin|test';

相关问题