偶的岁月 2007-8-10 23:58
将数据库与创始人信息隐藏得更深
昨天在PW官方论坛看到一个关于sql_config.php里面的内容被全部拿到的,这显然是相当危险的。
但是同时也在考虑,为什么每次漏洞的出现,都没有遇到过官方论坛被拿下的呢,是没有报道还是...
就这次的事件,如果官方没被拿下,那么多半的可能性是属于服务器的安全问题,而且很可能是windows系统的一个致命漏洞造成的。但这一切都仅仅是猜测。
因此,还是希望将数据库信息以及创始人信息隐藏得更深并加密,从某种程序上为破解制造难度。
抛弃数据库服务器的漏洞,来看看缓存的存储文件sql_config.php.
而涉及到这个文件的相关php文件是:
include sql_config.php files
global.php 这个可以很重要的哦
ck.php 验证码相关
admin/hackcenter.php 插件相关
new.php 首页调用
admin/admincp.php 后台管理的全局文件,相当于前台的global.php
admin/chmod.php 文件属性检查文件
admin/manager.php 创始人更换创始人的页面。
知道了相关的几个页面,让我们来研究一下sql_config.php的文件结构。以下部分属于源码加本人的一些注释:
[code]
<?php
/**
* 以下变量需根据您的服务器说明档修改
*/
//********数据库相关的部分是在安装论坛的时候进行设置的,以后不会更改;危险的主因
//********剥离出来单独放到一个文件,如db_config.php
$dbhost = 'localhost'; // 数据库服务器
$dbuser = 'admin'; // 数据库用户名
$dbpw = '333333'; // 数据库密码
$dbname = 'pwsos'; // 数据库名
$database = 'mysql'; // 数据库类型
$PW = 'pw_'; // 表区分符
$pconnect = '0'; //是否持久连接
/*
MYSQL编码设置
如果您的论坛出现乱码现象,需要设置此项来修复
请不要随意更改此项,否则将可能导致论坛出现乱码现象
*/
//**********数据库编码,一般不会更改
$charset='gbk';
/**
* 论坛创始人,拥有论坛所有权限
*/
//**********这个要是没了,可是损失惨重阿,论坛被完全控制了;
//**********如果不修改创始人,一般不更改
//**********毫无疑问,剥离出去,和数据库相关的配置信息单独存放在一个文件
$manager='pwsos'; //管理员用户名
$manager_pwd='8de19d9b4ecdfe0cda34144240dfcb23'; //管理员密码
/**
* 镜像站点设置
*/
//*****无关痛痒,不剥离
$db_hostweb='1'; //是否为主站点
/*
* 附件url地址,以http:// 开头的绝对地址 为空使用默认
*/
//*****无关痛痒,不剥离
$attach_url=array();
/**
* 插件配置
*/
//*****无关痛痒,不剥离。每次设置插件都要被更新的部分,加密了文件也会被重写。
$db_hackdb=array(
'bank'=>array('银行','bank','1'),
'colony'=>array('朋友圈','colony','1'),
'advert'=>array('广告管理','advert','0'),
'new'=>array('首页调用管理','new','0'),
'medal'=>array('勋章中心','medal','0'),
'toolcenter'=>array('道具中心','toolcenter','0'),
'blog'=>array('博客','blog','0'),
'invite'=>array('邀请注册','invite','0'),
'passport'=>array('通行证','passport','0'),
'team'=>array('团队管理工资设置','team','0'),
);
?>
[/code]
好了,上述文件除了将要剥离出去的信息删除之外,其余保留,名称不更改;
将剥离出来的信息另存为一个新的文件,结构如下:
[code]
<?php
/**
* 以下变量需根据您的服务器说明档修改
*/
$dbhost = 'localhost'; // 数据库服务器
$dbuser = 'admin'; // 数据库用户名
$dbpw = '333333'; // 数据库密码
$dbname = 'pwsos'; // 数据库名
$database = 'mysql'; // 数据库类型
$PW = 'pw_'; // 表区分符
$pconnect = '0'; //是否持久连接
/**
* 论坛创始人,拥有论坛所有权限
*/
$manager='pwsos'; //管理员用户名
$manager_pwd='8de19d9b4ecdfe0cda34144240dfcb23'; //管理员密码
?>
[/code]
假设另存为db_config.php,目录仍为data目录,不建议,隐藏得越深越好。
之后zend加密.
接下来,修改上述几个相关文件,不然论坛要出问题的。
圣刀 2007-9-16 19:21
高手ing:)smilies1 :)smilies1 :)smilies1