Linux下PhpMyAdmin程序目录的安全管理(转)

news/2024/7/23 18:39:44 标签: 操作系统, 数据库, php
PhpMyAdmin是一套放在服务器端的通过浏览器界面管理的程序,因此,确保其目录 安全性十分重要,否则,将导致数据被盗取甚至遭到恶意破坏。本文将详细讲述一般的防范措施。

正文:

  在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目录进行讲述,其他目录如需加访问限制,也可依此方法操作。


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10294527/viewspace-122841/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10294527/viewspace-122841/


http://www.niftyadmin.cn/n/1447120.html

相关文章

[python] 线程简介

参考:http://www.cnblogs.com/aylin/p/5601969.html 我是搬运工,特别感谢张岩林老师! python 线程与进程简介 进程与线程的历史 我们都知道计算机是由硬件和软件组成的。硬件中的CPU是计算机的核心,它承担计算机的所有任务。 操作…

移动通信的一体化解决方案(转)

在运营公司的经营中,维护、管理、建设等各方面工作是紧密联系的有机整体。然而,若干业务系统独立运作的方式将这些密切的关系分割开来,存在不少弊病,也限制了业务的发展。这种方式,在竞争激烈的移动通信领域&#xff0…

前端工程师如何快速的开发一个微信JSSDK应用

亲们,订阅号出来已经很久了,作为一个前端工程师或者全栈工程师,你是不是错过了什么?大概许多攻城狮同砚还没有反应过来订阅号怎么回事,就马上要被微信的应用号秀一脸了。在应用号还没有正式出来之前,我们赶…

uva 11556 - Best Compression Ever(水题)

题目链接&#xff1a;uva 11556 - Best Compression Ever 题目大意&#xff1a;有n个文件&#xff0c;问说用b1位是否可以表示&#xff0c;全0不能表示。 解题思路&#xff1a;水题&#xff0c;不过话说英语实在看不懂啊&#xff0c;题意是半猜的。 #include <cstdio> #…

后门防御阅读笔记,Neural Cleanse Identifying and Mitigating Backdoor Attacks in Neural Networks

论文标题&#xff1a;Neural Cleanse Identifying and Mitigating Backdoor Attacks in Neural Networks 论文单位&#xff1a;UC Santa Barbara,University of Chicago 论文作者&#xff1a;Bolun Wang, Yuanshun Yao,Shawn Shan 收录会议&#xff1a;2019 IEEE Symposium …

使用sshfs将远程目录挂载到本地

在Linux下我们通常使用ssh命令来登录远程Linux服务器&#xff0c;如果需要登录的远程服务器不止一个&#xff0c;来回切换的过程将会变得非常麻烦。如果使用sshfs&#xff0c;将可以直接将远程目录映射到本地&#xff0c;而不需要修改远程计算机的设置。下面我们来看一下如何使…

TPC-B测试:Greenplum 6版本比5版本到底好了多少?

了解更多Greenplum技术干货&#xff0c;欢迎访问Greenplum中文社区网站 pgbench 简介: pgbench是一种在PostgreSQL上运行基准测试的简单程序。它可能在并发的数据库会话中一遍一遍地运行相同序列的 SQL 命令&#xff0c;并且计算平均事务率&#xff08;每秒的事务数&#xff09…

MyBatis详解 与配置MyBatis+Spring+MySql

springmybatisorm MyBatis 是一个可以自定义SQL、存储过程和高级映射的持久层框架。MyBatis 摒除了大部分的JDBC代码、手工设置参数和结果集重获。MyBatis 只使用简单的XML 和注解来配置和映射基本数据类型、Map 接口和POJO 到数据库记录。相对Hibernate和Apache OJB等“一站式…