gpt4 book ai didi

php - 如何在mysql中隐藏信息模式

转载 作者:行者123 更新时间:2023-11-29 08:37:36 25 4
gpt4 key购买 nike

我想隐藏所有细节(表结构、数据库设计等)。我该怎么做,我在 Google 中搜索并得到了一些信息。

从此,我更改了 config.inc.php 的内容:

<?php

/* Servers configuration */
$i = 0;

/* Server: localhost [1] */
$i++;
$cfg['Servers'][$i]['verbose'] = 'localhost';
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['port'] = '';
$cfg['Servers'][$i]['socket'] = '';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = '';
$cfg['Servers'][$i]['AllowNoPassword'] = true;
$cfg['Servers'][$i]['hide_db'] = 'information_schema';

/* End of servers configuration */

$cfg['DefaultLang'] = 'en-utf-8';
$cfg['ServerDefault'] = 1;
$cfg['UploadDir'] = '';
$cfg['SaveDir'] = '';


/* rajk - for blobstreaming */
$cfg['Servers'][$i]['bs_garbage_threshold'] = 50;
$cfg['Servers'][$i]['bs_repository_threshold'] = '32M';
$cfg['Servers'][$i]['bs_temp_blob_timeout'] = 600;
$cfg['Servers'][$i]['bs_temp_log_threshold'] = '32M';


?>

但是,当我去

http://localhost/phpmyadmin/index.php?db=mysql&token=df40bf81f38ce55621e179517c212d62  

我可以看到所有信息。

有什么解决办法吗?

最佳答案

已经隐藏了。它之所以可用是因为:

  • 没有root密码。
  • 您尚未退出 session ,因此包含您的 session 信息的 Cookie 已得到验证,并且您会自动重定向到该信息(数据库、表)。这是为了避免每次刷新时都登录。

另外,检查“allownopassword”条目,如果它设置为 true,则允许没有密码的人登录。尝试将其设置为 false。

在 MySQL 中设置 root 密码(就 root 密码变量而言。我强烈建议不要将密码放入 php 文件中。)

如果您从未为MySQL服务器设置过root密码,则服务器允许您在没有密码的情况下识别为root。要创建 root 密码,请在 shell 中输入以下内容:

$ mysqladmin -u root password NEWPASSWORD



<?php

/* Servers configuration */
$i = 0;

/* Server: localhost [1] */
$i++;
$cfg['Servers'][$i]['verbose'] = 'localhost';
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['port'] = '';
$cfg['Servers'][$i]['socket'] = '';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'root'; // If you're going to use ROOT for ALL WORK, set a root password and put it below.
$cfg['Servers'][$i]['password'] = 'PASSWORD';
$cfg['Servers'][$i]['AllowNoPassword'] = false; // False!
$cfg['Servers'][$i]['hide_db'] = 'information_schema';

/* End of servers configuration */

$cfg['DefaultLang'] = 'en-utf-8';
$cfg['ServerDefault'] = 1;
$cfg['UploadDir'] = '';
$cfg['SaveDir'] = '';


/* rajk - for blobstreaming */
$cfg['Servers'][$i]['bs_garbage_threshold'] = 50;
$cfg['Servers'][$i]['bs_repository_threshold'] = '32M';
$cfg['Servers'][$i]['bs_temp_blob_timeout'] = 600;
$cfg['Servers'][$i]['bs_temp_log_threshold'] = '32M';


?>

顺便说一下,配置没有密码保护 phpMyAdmin;任何访问正确 URL 的人都会直接登录并可以操作您的服务器。

创建一个 .htaccess 文件来防止这种情况发生!

Order Deny,Allow
Deny from All
Allow from YourIPAddress

关于php - 如何在mysql中隐藏信息模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14793498/

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