A-A+

如何保护Joomla的configuration.php文件

2008年03月27日 Joomla 暂无评论 阅读 342 次浏览 次

Joomla的一大优点就是简易。通过图形界面就能完成安装并开始管理网站。省却了手动编辑config文件的繁琐,也带来了一点安全隐患。因为现在大家都知道Joomla的 configuration.php 文件里面含有网站的绝对地址、数据库账号及密码——这一切数据都是明文,没有加密;而且该文件位于Joomla根目录下,并且文件名称永远是这个!

想想看,别人知道了你的网站域名,就知道了configuration.php文件的位置。假如某些人通过某种方法阅读了该文件的内容,然后通过数据库再得到超级管理员的用户名及密码,你的网站基本上就是裸体展示了。

怎么办?与其坐以待毙,不如起而护网:本文介绍两种方法保护你的Joomla站点配置文件。

 

首先声明:本文所提出的方案都存在一定难度,有可能会损坏你的网站。所以不建议新手尝试;即使你是很熟练的Joomlar,也建议你在继续下面的步骤之前做好网站的备份工作。

 

方案一:隐性埋名

本方案译自Bayu Narpati在HackJoom网站的文章。

比如说,你可以将configuration.php 文件重命名为 hackconfig.php ,由于很多文件将读取配置文件,所以我们还必须修改其它文件的代码,使其将读取对象由原来的configuration.php 变为 hackconfig.php 。

要完成这个工作,必须将网站所有文件都下载到本地硬盘,或者干脆在安装网站之前就进行——因为我们需要搜索、替换多个文件的代码。

借助一个可以在多个文件及子目录中搜索、替换的软件,如Dreamweaver或者EmEditor。本例使用DW,不过译者推荐使用开源的Notepad++编辑器。

现在我们通过查找、替换,将所有configuration.php都替换为hackconfig.php:

 

在Dreamweaver中查找、替换
在Dreamweaver中查找、替换

 

 

如上图所示,填写正确的信息后,点击“Replace All”,DW首先会警告你这样替换的操作无法复原,你点击Yes即可:

 

确认在DW中的操作
确认在DW中的操作

 

接下来DW会搜寻所有文件中的代码,所需时间较长,请耐心等待。在底部的结果面板上可以看到已经替换过的文件列表:

 

Dreamweaver的替换结果
Dreamweaver的替换结果

 

替换完成后,我们还要把根目录下的configuration.php-dist 文件重命名为 hackconfig.php-dist 

这样,就完成了对 configuration.php 文件的改名保护工作。现在可以上传整个安装包开始安装网站了。

想知道一共替换了多少个文件?Ok,对于Joomla 1.0.12 英文原版来说,替换的文件列表可以在这个Results Report 中看到。

不过,这种方法没有考虑到以后还要安装其它扩展。假如某个扩展需要读取网站配置文件,它就找不到configuration.php文件,而管理员就不得不再次手动修改新扩展的文件,替换那些相应的字串。

是不是有点辛苦?还有,文件名再怎么改,文件位置都是在Joomla根目录下,还是有点担心耶。那么,我们来看看一个“半自动”的方法:

方法二:远遁山林

Efthimios Mavrogeorgiadis同志已经为我们开发了一个组件,名叫protconf,该组件的功能是可以在网站后台运行,自动进行configuraion.php文件的重命名,同时查找、替换网站所有文件中指向该文件的代码,将目标文件也相应修改为新的文件名。此组件的优势是:可以自动生成新的文件名,大小写混合,比一般用户自己想出来的文件名更难以猜破;重命名操作可以还原,以便安装新的扩展。更重要的是,这个组件具有“乾坤大挪移”的本领,可以将configuration.php文件移动到任何一个目录下,并且保证网站仍然能够正常运行。

 

自动生成的文件名很难猜破
自动生成的文件名很难猜破

 

我再次提醒:本文介绍的方法都有一定难度及风险,请在继续操作之前做好网站备份!

目前该组件没有对多种语言的支持,因此我只汉化了菜单。经过与组件作者联系,他表示会在下一个版本中增加多语言支持。

protconf 的安装方法与标准组件相同,安装后无需为其建立前台菜单,因为它只在后台工作。

点击后台菜单上的“组件 -> Protect Configuration File”,可以看到四个子菜单:改变权限、重新命名、移动、恢复,一目了然。

笔者曾经在本地服务器测试过这个组件,在重新命名时,如果网站内容较多,很可能由于timeout或者memory limit错误就中断了,这时整个网站就瘫痪了。因此再次强调:请谨慎操作。

至于移动configuration.php文件的操作,我想也不是很复杂,按照屏幕提示一步一步操作即可。本文不再赘述。

 

评论已关闭!

Copyright © 香港虚拟主机_美国虚拟主机_香港服务器_美国服务器租用托管 保留所有权利.   Theme  Ality 蜀ICP备14006632号-1

用户登录