PHPMyAdmin及权限配置

 更新时间:2024年09月14日 16:28:27   作者:YhMjQx  
这篇文章主要介绍了PHPMyAdmin及权限配置,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

PHPMyAdmin是一个网页版本的MySQL管理端,可以完成和navicat几乎类似的功能:建库,建表,建对象,备份,执行SQL语句等,但是为了安全起见,默认情况下,是禁止远程访问的。

image-20240119140933994

所用知识点

1.DocumentRoot

我们去看他这个网址,http://192.168.230.147/phpmyadmin/ 访问的时候明显是在htdocs这个根目录下面去了,但是实际上他的真实目录却是在 /opt/lampp 下

image-20240119141248218

这是为什么呢,实际上这就是 虚拟目录 的作用

指定Web服务器的主目录,那么如果不配置虚拟目录的情况下,所有Web应用都应该放在该目录下。

DocumentRoot "/opt/lampp/htdocs"
<Directory "/opt/lampp/htdocs">

如果让 DocumentRoot "/opt/lampp/lampp/htdocs/xindai " 则访问时,直接访问 http://192.168.230.147/ 即可访问到信贷系统

其实我们访问xindai系统也可以做到类似这样的效果,只需要在Apache的配置文件中修改一下DocumentRoot即可 /opt/lampp/etc/httpd.conf ,一般情况下,有关网址访问都是和Apache有关的,这些配置的相关文件都在 /opt/lampp/etc 目录下

image-20240119142305258

修改为

image-20240119144108565

(修改Directory的原因是Directory涉及到一些访问控制的权限) 然后 /opt/lampp/lampp restart

那么访问的情况就会由

image-20240119142442986

变为

image-20240119143828179

2.虚拟目录

即便Web应用没有放置于DocumentRoot 目录下,只要通过配置虚拟目录,也可以实现访问,比如 PHPMyAdmin应用程序就没有放到 DocumentRoot 目录下,也是实现访问,那是因为系统为PHPMyAdmin 配置了虚拟目录,其配置文件在 /opt/lampp/etc/extra/http-xampp.conf 中。

我们进入 /opt/lampp/etc/httpd.conf 文件查找 xampp可以看见如下情况

image-20240119150931613

这里使用了很多的include文件。虽说之后httpd.conf才是Apache的核心文件,但是我们也不能将所有的配置信息全部揉进这一个文件当中,这样会显得非常繁琐,且文件也较大,因此我们将一些其他的配置信息写到其他的文件当中去,然后使用include包含进 httpd.conf 中来

这里面include的最重要的就是这个 etc/extra/httpd-xampp.conf

image-20240119151401322

我们可以看到,这个目录下的文件基本上全都是和httpd有关的,现在进入 httpd-xampp.conf 查看

打开之后可以看到这么一段话

Alias /phpmyadmin "/opt/lampp/phpmyadmin"


# since XAMPP 1.4.3
<Directory "/opt/lampp/phpmyadmin">
    AllowOverride AuthConfig Limit
    Require local
    ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
</Directory>

这段话的效果就是配置了一个新的虚拟目录。 Alias /phpmyadmin "/opt/lampp/phpmyadmin" 意思是起了一个别名叫 /phpmyadmin 对应的是 /opt/lampp/phpmyadmin。就可以使得我们通过访问 http://192.168.230.147/phpmyadmin 就相当于直接访问到了 /opt/lampp/phpmyadmin

其中 AllowOverride AuthConfig Limit Require local 属于Apache的访问控制权限模块的指令等,一般情况下应用系统中会有一个 .htaccess文件 其中就写的是这些模块的指令。其中 Require local 表示只有本机可以访问,为了实现远程连接控制,就要将其修改为 Require all granted

3.配置远程访问权限

4.Require

Apache2.4中开始使用mod_authz_host这个新的模块来进行访问控制和其他的授权检查。原来在Apache2.2版本下用以实现网站访问控制的Order,Allow,Deny指令需要替换为新的Require访问控制指令

允许所有:Require all granted
拒绝所有:Require all denied
只允许特定域名主机的访问请求:Require host google.com
允许匹配环境变量中的任意一个:Require env env-var [env-var] ...
允许特定的HTTP方法(GET/POST/HEAD/OPTIONS): Require method http-method [http-method] ...
允许,表达式为true:Require expr expression
允许特定用户:Require user userid [userid] ...
允许特定用户组:Require group group-name [group-name] ...
允许,有效用户:Require valid-user
允许特定IP或IP网段,多个IP或IP网段间使用空格分隔: Require ip 192.100 192.168.100 192.168.100.5

以下示例:允许所有访问请求,但拒绝来自特定IP或IP网段的访问请求(阻止恶意IP或网络爬虫网段的访问)

<Directory xxx/www/yoursite>
	<RequireAll>
		Require all granted
		Require not ip 192.168.1.1
		Require not ip 192.120 192.168.100
	</RequireAll>
</Direcory>

5.ACL

从网络的角度来说,举例网路入口(边境)越近,所能防御到的攻击越多越广,童谣,要考虑的通用性也需要越强

image-20240119154238208

PHPMyAdmin开始配置

1.配置远程访问

进入 /opt/lampp/etc/extra/httpd-xampp.conf 文件中,

修改为

image-20240119160904912

因为 Require local 只允许本地访问

OK,然后重启xampp

image-20240119161003192

可以进入这个页面了,但是依旧还有些小错误

我们仔细看错误是什么 mysqli_real_connect(): (HY000/1045): Access denied for user 'root'@'localhost' (using password: NO) 熟不熟悉???我就问你熟不熟悉。

一看我靠,这是不是mysql登录时,不使用密码不允许登录的时候报的错吗,OK看来是需要我们去修改PHPMyAdmin登录MySQL时所需的用户密码

2.配置PHPMyAdmin密码

修改文件 /opt/lampp/phpmyadmin/config.inc.php

image-20240119163929304

我们修改信息,使用root@localhost或者remote@192.168.230.147都可以

/**
 * First server
 */
$i++;
/* Authentication type */
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = 'p-0p-0p-0';
/* Server parameters */
//$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['AllowNoPassword'] = true;


image-20240119164356907

这样才算进来了,我试过了,配置文件使用其他用户是无法登陆的

但是现在还有一个问题就是,不管在那台机器上 访问都可以进入PHPMyAdmin这个页面,非常危险,所以还需要解决这个问题:

解决方案如下:

  • 为PHPMyAdmin设置访问密码
  • 禁用PHPMyAdmin,注释掉在 httpd-xampp.conf 的包含文件,并删除 PHPMyAdmin 目录
  • 管理数据库,使用数据库,为什么一定需要再同一个应用或同一个Apache里面呢?
  • 使用 Knock 进行端口管理,并且只在需要的时候短暂打开端口,用完就关闭。

在这里我们先选择直接设置登录密码

进入/opt/lampp/phpmyadmin/config.inc.php 文件,需修改配置文件信息

/**
 * First server
 */
$i++;
/* Authentication type */
$cfg['Servers'][$i]['auth_type'] = 'http';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = 'p-0p-0p-0';
/* Server parameters */
//$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['AllowNoPassword'] = true;

image-20240119195952740

image-20240119200110444

然后填写用户名密码即可登录

其他注意事项

(1)任何一个URL地址,一定要指定到具体的文件才可以访问,如果没有指定,则会访问默认文件,默认首页。

例如小额信贷系统,在/opt/lampp/htdocs/xindai目录下的index.php文件,就是该系统的默认文件,默认访问页面

如果将该文件名字改一下会遇见什么情况?

image-20240119191318015

现在我们再去访问一下xindai

image-20240119191300129

就会变成这样

(2)默认情况下,任何一个目录,如果只输入目录名而不输入文件名就去访问,该目录必须要有一个默认文件。比如 index.php index.html index.jsp 或 default.php main.php等,否则将无法访问到系统页面反而给出来的就是该目录下的所有文件,就和上图一样。

而系统的默认文件配置信息,就在 /opt/lampp/etc/httpd.conf中,这是Apache的核心配置文件

image-20240119191937544

但是,我们是不允许用户直接这样访问到目录页面的,这算是一个很大的漏洞,一旦讲这些暴露在外,就危险了,那么该如何处理解决呢?

(3)取消OPTIONS的权限,依旧是在 /opt/lampp/ect/httpd.conf 文件中修改,添加红色框中部分,并注释掉上面那句Options Index Follow…话

image-20240119192824498

然后由于修改了核心配置文件,需要重启 /opt/lampp/lampp restart

image-20240119193037433

现在再去访问就不会有这种情况了

任务:

1.完成PHPMyAdmin的登录密码配置

2.在 Xampp 7.3 上配置 woniunote系统:DocumentRoot需要指定到public目录下,直接放在根目录htdocs是有问题的

3.在Windows上完成上述任意环境配置

到此这篇关于PHPMyAdmin及权限配置的文章就介绍到这了,更多相关PHPMyAdmin权限配置内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python+selenium 脚本实现每天自动登记的思路详解

    python+selenium 脚本实现每天自动登记的思路详解

    这篇文章主要介绍了python+selenium 脚本实现每天自动登记,本文你给大家分享基本的思路,通过实例代码截图的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-03-03
  • 什么是python的id函数

    什么是python的id函数

    在本篇文章里小编给大家分享了关于python里id函数的基础知识点,需要的朋友们可以一起学习下。
    2020-06-06
  • python简单实现9宫格图片实例

    python简单实现9宫格图片实例

    在本篇内容里小编给各位分享的是一篇关于python实现朋友圈中的九宫格图片的实例讲解,有需要的朋友们可以参考下。
    2020-09-09
  • Django安装配置mysql的方法步骤

    Django安装配置mysql的方法步骤

    这篇文章主要介绍了Django安装配置mysql的方法步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-10-10
  • python计算寄送包裹重量的实现过程

    python计算寄送包裹重量的实现过程

    要实现这样一个需求寄送包裹小于5kg,每公斤0.5元,大于等于5kg,超出5公斤部分,按照每公斤0.8元计算,输入重量,输出应付金额,下面小编给大家分享实现代码,感兴趣的朋友跟随小编一起看看吧
    2022-02-02
  • python解析xml文件操作实例

    python解析xml文件操作实例

    这篇文章主要介绍了python解析xml文件操作实例,是操作XML文件的常见技巧,需要的朋友可以参考下
    2014-10-10
  • 使用Python实现视频转音频与音频转文本

    使用Python实现视频转音频与音频转文本

    这篇文章主要为大家详细介绍了使用Python实现视频转音频与音频转文本的相关知识,文中的示例代码简洁易懂,有需要的小伙伴可以参考一下
    2024-02-02
  • python常见模块与用法

    python常见模块与用法

    这篇文章主要介绍了python常见模块与用法,文中有非常详细的代码示例,对正在学习python的小伙伴们有一定的帮助,需要的朋友可以参考下
    2021-04-04
  • Python requests.post()方法中data和json参数的使用方法

    Python requests.post()方法中data和json参数的使用方法

    这篇文章主要介绍了Python requests.post()方法中data和json参数的使用方法,文章围绕主题展开详细的内容介绍,具有一定的参考价值,感兴趣的小伙伴可以参考一下
    2022-08-08
  • Python线性点运算数字图像处理示例详解

    Python线性点运算数字图像处理示例详解

    这篇文章主要为大家介绍了数字图像处理基本运算如何用Python详细点运算来处理数字图像有需要的朋友可以借鉴参考下,希望能够有所帮助
    2021-09-09

最新评论