禁止外部用户访问apache上的phpMyAdmin


phpMyAdmin是可以通过Web页面来管理MySQL的工具。

安装phpMyAdmin的时候需要把它的安装文件解压缩在apache的htdocs文件夹,

也就是用来发布Web应用程序的文件夹下。这样就可以像访问其他Web应用程序一样访问phpMyAdmin了。

但是如果可以访问其他应用程序的用户也可以随意的访问phpMyAdmin的话,

那么也就可以随意的修改数据库了,这样岂不是很危险?

目前自己装的只是一个开发环境,应该不用介意这一点,但是真正维护一个系统的时候,这应该是个很大的问题。

所以决定先研究一下怎样能够控制让外部用户只可以访问我想公开的应用程序,而不能访问phpMyAdmin。

设置apache的目录访问权限可以解决这个问题。

apahche的httpd.config文件中有<Directory>标签,里面可以设置Options,AllowOverride,order,Allow,Deny五种命令。

Options:用来指定各种目录特性是否有效。比如是否可以使用符号连接,是否允许生成目录下所有文件的索引等

AllowOverride:用来指定各个子目录内部设置的访问权限控制(.htaccess文件)是否有效。

order:用来设置一个目标即适用于Allow又适用于Deny命令时Allow命令和Deny命令哪一个生效。

Allow和Deny:针对客户端的域名或IP地址进行访问控制。

所以我只需要认真设置order,Allow,Deny三个命令就可以了。

因为在家里没有测试环境,我只做了一下的试验。

在httpd.config文件中添加了一下的设置:

<Directory "htdoc的路径/phpMyAdmin">

Options None

AllowOverride None

order deny,allow

Deny from all

Allow from 192.168.3.102

</Directory>

其中的IP地址是家里另外一台电脑的IP。

结果在另外一台电脑可以访问phpMyAdmin,而在装了apache的电脑上访问时会出现 HTTP 403 错误。

相关内容