Linux下PhpMyAdmin程序目录结构的安全管理

 更新时间:2011年04月03日 01:10:56   作者:  
Linux下开发Web程序,现在很流行的开发方法为:用PHP开发Web程序,用Apache做Web Server,Mysql充当后台管理数据库。
这种组合使得开发Web程序简单、安全、效率高。由于程序是在Linux下运行,虽免去了版权费用,对数据库的管理却少了Windows下的图形界面管理工具,因此使用起来有点困难。现在有了一套由php开发爱好者写的管理Linux下数据库的程序,phpMyAdmin可极好的解决使用的易用性问题。PhpMyAdmin对管理Linux下的数据库行之有效,用户可以通过web浏览器新建删除数据库,增加、删除、修改表结构和表数据,还可以通过表单形式提交查询语句,返回数据结果。因此,现在很多的Linux服务器都使用phpMyAdmin管理数据库。
  PhpMyAdmin是一套放在服务器端的通过浏览器界面管理的程序,因此,确保其目录安全性十分重要,否则,将导致数据被盗取甚至遭到恶意破坏。下面将详细讲述一般的防范措施。

  一、 修改phpMyAdmin目录名:

  在不修改目录名前,其他人很容易洞察该目录名,造成安全隐患。如,假设一台Linux主机的域名为:www.test.com,那么不修改目录名的情况下,在地址栏中输入:www.test.com/phpMyAdmin/ 就将进入phpMyAdmin管理程序。因此如果将phpMyAdmin目录改名为一个别人不易知道的目录,如mynameadmin,这样,你在管理自己的数据库时,只要键入:www.test.com/mynameadmin/ 就可以通过浏览器管理数据库了。(注:下面仍将使用phpMyAdmin目录名,如果目录名已换,只需把phpMyAdmin改名为新的目录名即可。)

  二、 对phpMyAdmin目录加用户身份验证:

  这是很多网站需要用户验证时普遍使用的方法,这样当用户第一次浏览进入该目录时,都将出现一个提示窗口,提示用户输入用户名和密码验证,其是通过使用Apache Server的标准 mod_auth模块实现的,具体操作方法如下:

  1、VI编辑Apache Server配置文件,确保文件中如下两句话没有加注释,如果这两句话前有"#"符号,去掉"#"号。

  DocumentRoot /data/web/apache/public/htdocs
  AccessFileName . htaccess
  AllOerride All


  2、passwd程序创建用户文件:

  htpasswd - c /data/web/apache/secrects/.htpasswd 88998


  其中,-c表示选项告诉htpasswd你想生成一个新的用户文件,/data/web/apache/secrects/ 是你想存放 .htpasswd 文件的目录,文件名称为 .htpasswd,88998 是在验证时所用到的用户名,敲如以上命令后,系统提示你输入密码,这个密码就是验证时所需要用到的密码,该密码在 .htpasswd 文件中是加密的。现在用more来查看 /data/web/apache/secrects/.htpasswd文件,可以看到其中有一行用户名和一串加密密码。

  3、创建 .htaccess 文件:

  使用文本编辑器,在目录 phpMyAdmin (如果已经改名,就是新的目录名)下创建 .htaccess 文件,在文件中加入如下语句:

  AuthName "用户验证"
  AuthType Basic
  AuthUserFile /data/web/apache/public/htdocs/phpMyAdmin/.htpasswd
require user 88998


  保存所做操作后,再去看phpMyAdmin目录,将提示验证窗口,输入刚用 htpasswd 命令创建的用户名和密码,即可进入该目录。

  三、 增加基于主机的访问控制:

  在修改了目录名和增加访问验证机制后,应该说现在的phpMyAdmin已经很安全了,但由于phpMyAdmin目录一般只是数据库管理员使用,为防止别人还知道目录名称和验证密码,还可以增加如下的基于主机的访问控制,基于主机的访问是通过验证用户机器IP来实现的,即只有符合条件的IP才可以反问该目录,否则拒绝访问。

  修改 .htaccess 文件如下:

  AuthName "用户验证"
  AuthType Basic
  AuthUserFile /data/web/apache/public/htdocs/phpMyAdmin/.htpasswd
require user 88998
  order deny,allow
  deny from all
  allow from 202.100.222.80


  这里增加了三条基于主机访问控制指令,其中第一条 order 指令的值是由一个逗号隔开的名单,这个名单表明了哪一个指令更高的优先权,第二条指令 deny 定义不能访问该目录的主机,第三条指令 allow 定义可以访问该目录的主机,这样,该目录除了IP地址为 202.100.222.80 的机器可以访问该目录之外,其他的都不能访问,读者可以把该地址该为用户数据库管理员IP。

  总结:通过以上三点相结合,就可很好的确保 phpMyAdmin 目录的安全,非数据库管理员将很难通过phpMyAdmin程序读取数据。这里所讲的是针对于phpMyAdmin目录进行讲述,其他目录如需加访问限制,也可依此方法操作。

相关文章

  • ubuntu13.10编译安装mono环境(一)

    ubuntu13.10编译安装mono环境(一)

    Mono是一个自由开放源代码项目。该项目的目标是创建一系列符合ECMA标准的.NET工具,包括C#编译器和通用语言架构。Mono项目不仅可以运行于Windows系统上,还可以运行于Linux,FreeBSD,Unix,OS X和Solaris,甚至一些游戏平台,例如:Playstation 3,Wii或XBox 360。
    2014-07-07
  • CentOS 6.5平台实现快速部署FTP的方法

    CentOS 6.5平台实现快速部署FTP的方法

    这篇文章主要介绍了CentOS 6.5平台实现快速部署FTP的方法,结合实例形式分析了CentOS6.5平台配置与部署FTP的具体步骤、相关操作命令与注意事项,需要的朋友可以参考下
    2018-04-04
  • linux 安装配置lamp v2

    linux 安装配置lamp v2

    距离第一个版本已经有一年了。修正了几个错误的地方,还有取消了某些lib的安装,因为centos有,所以相关的lib安装我都没有去查找错误。
    2009-02-02
  • Ubuntu查看端口状态基本命令和步骤

    Ubuntu查看端口状态基本命令和步骤

    Ubuntu是一种流行的Linux操作系统,它提供了多种方法来查看端口开放情况,下面这篇文章主要给大家介绍了关于Ubuntu查看端口状态基本命令和步骤的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-04-04
  • Apache常用虚拟主机配置方法解析

    Apache常用虚拟主机配置方法解析

    这篇文章主要介绍了Apache常用虚拟主机配置方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • Linux中安装配置hadoop集群详细步骤

    Linux中安装配置hadoop集群详细步骤

    本篇文章主要介绍了Linux中安装配置hadoop集群详细步骤,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-03-03
  • 在Linux上识别同样内容的文件详解

    在Linux上识别同样内容的文件详解

    这篇文章主要给大家介绍了关于如何在Linux上识别同样内容的文件的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Linux具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-06-06
  • centos7修改网卡后无法上网问题解决过程

    centos7修改网卡后无法上网问题解决过程

    大家好,本篇文章主要讲的是centos7修改网卡后无法上网问题解决过程,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12
  • linux用户和组管理常见命令总结

    linux用户和组管理常见命令总结

    这篇文章主要介绍了linux用户和组管理常见命令,总结整理了linux用户和组管理相关原理、操作命令与使用注意事项,需要的朋友可以参考下
    2020-03-03
  • Gerrit设置开机启动方法

    Gerrit设置开机启动方法

    下面小编就为大家分享一篇Gerrit设置开机启动方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-03-03

最新评论