您的位置:首页 > 运维架构 > 网站架构

织梦Dedecms网站安全优化之重定义目录

2016-03-21 10:59 741 查看
http://www.111cn.net/wy/Dedecms/56615.htm

织梦Dedecms网站安全优化之重定义目录

www.111cn.net
编辑:Space 来源:转载dedecms的中的目录都是固定好了这样很容易给黑客来获取相关信息了,下面我们来看看织梦Dedecms网站安全优化之重定义目录方法,希望文章对你带来帮助。很久之前就在寻找重新定义织梦(dede)目录结构的教程,但是苦苦寻找之后还是无果!前段时间,用织梦做了一个学校的网站,放到服务器上没过一周,网站就被注入黑链。相比之前学校新闻网,这次来的更狠,前台后台一并注入,并嵌入很多隐藏的iframe。没办法,这次我也得狠点。更改织梦默认目录名,只是在一定程度上加大黑客判断网站系统为dede,从而加到攻击难度。(用点简单的seo/seo.html" target="_blank">搜索引擎技巧,就可以找到一片织梦站点,如:inurl:/plus/view.php?aid=作关键字百度谷歌一下)。接下来,简单说一下到底要做什么。首先把织梦安装在站点的子目录,然后再把常用的模块及目录转移到网站的根目录,并重新命名。如此,就可以把你排除在那一片的织梦站点外了。关于织梦安装到子目录,就不多说了。如果你想把根目录的织梦站点转移到子目录,你可以参考:织梦网站搬家及常见问题解决汇总。
织梦安装在子目录,新闻显示在根目录关于织梦新闻要显示和根目录一样,有如下三个步骤。 配置当前位置中的主页链接http://www.111cn.Net 下面截一张图,如下:

DEDE-CMS后台参数设置1 按以上操作之后,网站中,当前位置的“主页”链接就变成了”http://www.111cn.net/”
生成网站首页 如果你选择网站浏览方式为静态的话,你必须把下图中的主页位置中的“../index.html”更改为“../../index.html”。

织梦主页更新向导 如果你更喜欢网站为动态浏览的话,你可以新建一个名为index.php文件,并在里面加入如下内容,然后放到网站的根目录即可。 <?php
include 'cms/index.php';
//cms为你织梦安装的子目录名
?> 使生成的新闻内容出现在网站的根目录 图1中的文档HTML默认保存路径,是新闻生成主目录,也就是默认的所有的HTML文档都会生成在这个目录之下,方便管理。下面,打开织梦栏目编辑窗口,如下图所示:

织梦栏目快捷编辑窗口 把“文件保存目录”中“{cmspath}”给去掉即可。 以上提供的方法仅适用于栏目为静态浏览方式,如果栏目为动态浏览的话,网址中又会出现在织梦安装目录,具体解决方案请见下文中“把plus目录移到站点根目录”部分。通过以上的设置,基本上已经实现了根目录浏览效果。但是仔细想想,织梦安装目录其实仍然暴露在外。下面,将介绍把plus,templets,uploads目录移到站点根目录,并重新命名。
织梦目录重定义
把织梦模板目录移到站点根目录打开网站,查看源代码,你就很容易根据链接的CSS文件路径,分析出织梦的安装目录,所以把templets目录移到站点根目录也是有必要的。下面来说一下如何操作: 打开织梦的目录配置文件include/common.inc.php
把更改第18行的代码,下面贴出了原来的代码和更改后的代码。 //更改之前的代码
define('DEDETEMPLATE', DEDEROOT.'/templets');

//更改之后的代码,表示把模板目录放到网站根目录下,并重命名为style目录
define('DEDETEMPLATE', DEDEROOT.'/../style'); 接着,找到文件第185行,修改代码如下: //模板的存放目录
$cfg_templets_dir = $cfg_cmspath.'/templets';

//把以上代码更改为以下即可:(模板的存放目录)
$cfg_templets_dir = '/style';在按照以上操作之后,访问网站首页时可能会提示“无法在这个位置找到: head.htm”。主要是织梦的标签{dede:include filename=”head.htm”/}无法正常载入文件,从而引起错误。下面来说一下解决方案: 打开include/dedetag.class.php文件,到1000行(可以通过查找“IncludeFile”,定位到此位置),找到如下代码: if( file_exists(DEDEROOT."/templets/".$filename) )
{
$okfile = DEDEROOT."/templets/".$filename;
}
else if(file_exists(DEDEROOT.'/templets/'.$cfg_df_style.'/'.$filename) )
{
$okfile = DEDEROOT.'/templets/'.$cfg_df_style.'/'.$filename;
}
else
{
return "无法在这个位置找到: $filename";
} 把以上代码更改为: if($filename=='')
{
return '';
}
if( file_exists(DEDEROOT."/../style/".$filename) )
{
$okfile = DEDEROOT."/../style/".$filename;
}
else if(file_exists(DEDEROOT.'/../style/'.$cfg_df_style.'/'.$filename) )
{
$okfile = DEDEROOT.'/../style/'.$cfg_df_style.'/'.$filename;
}
else
{
return "无法在这个位置找到: $filename";
}把织梦上传目录移到站点根目录相比把模板目录移到根目录,上传目录的移动也是很有意义的。下面来说一下如何来把uploads目录移到站点根目录并重命名为upload。 首先进入网站后台,“系统基本参数设置”中把“图片/上传文件默认路径:”更改为“/upload”。
打开include/common.inc.php文件,找到第208行,按以下进行更改: //附件目录
$cfg_medias_dir = $cfg_cmspath.$cfg_medias_dir;
$cfg_mediasurl = $cfg_mainsite.$cfg_medias_dir;

//把以上代码更改为
//附件目录
$cfg_member_dir = $cfg_member_dir;
$cfg_mediasurl = $cfg_mainsite.$cfg_medias_dir;把织梦plus目录移到站点根目录plus目录中的部分文件提供了站点的动态访问功能,比如说一篇文章可以这样来访问:/2012/1213/36.html;你其实还可以这样来进行访问:/plus/view.php?aid=36,这也就轻易的暴露了织梦的安装目录,你可以通过如下方式来把plus目录移到站点的根目录,并重新命名。 打开include/common.inc.php 文件,找到第192行
按如下空行后的代码更改: //插件目录,这个目录是用于存放计数器、投票、评论等程序的必要动态程序
$cfg_plus_dir = $cfg_cmspath.'/plus';

//下面是对上面代码进行更改之后的
//插件目录,这个目录是用于存放计数器、投票、评论等程序的必要动态程序
$cfg_plus_dir = '/plug'; 接着,把plus目录剪切到网站的根目录,并把plus目录更名为plug 打开plug目录中的所有文件,把 require_once(dirname(__FILE__)."/../include/common.inc.php"); 替换成 require_once(dirname(__FILE__)."/../cms/include/common.inc.php"); 注意:上面提到的”cms”为对应的织梦安装目录,记得更改。
如果你的网站只是一个基本的新闻类站点,你还可以对该目录下的文件进行删除,最后只保留list.php、view.php、count.php即可。除了对程序进行一些修改之后服务器安全则是重中之点了,我们以iis为实例来看看dedecms iis安全配置 Windows下的IIS IIS6.0
打开IIS中站点,在站点uploads目录、data目录以及静态html生成目录点击右键,菜单中选择“属性”,在目录属性面板选择执行权限为“无”即可。(如图1)


IIS7
IIS7也类似于IIS6.0,选择站点对应的目录,data、uploads及静态html文件目录,双击功能试图面板中的“处理程序映射”(如图2)


在“编辑功能权限……”中,www.111CN.Net我们直接去除脚本的执行权限即可。(如图3)

其实上面只是介绍了如果取消执行权限,根据官方的推荐还需要设置目录写权限的设置方法,这里脚本之家简单的介绍下
例如a目录,一般是生成静态页面用的,那么我们就需要服务器端设置(dederun是iis中运行网站匿名用户)


Apache下目录脚本的执行权限设置 独立主机配置
在Apache中,没有Windows 下IIS的图形管理界面,我们需要手工修改下apache的配置文件,来进行目录脚本的执行权限的设定。
首先我们找到apache的配置文件httpd.conf,通常情况下,该配置文件在apache安装目录下的conf文件夹中(如图4)。


(图4)打开httpd.conf文件,找到内容中如图5的位置:

(图5)Directory "DIR">
<FilesMatch ".(php|asp|jsp)$">
Deny from all
</FilesMatch>
</Directory>

配置内容中的DIR为需要限制执行脚本文件的目录,FilesMatch后的内容为需要限定的执行的脚本后缀名。例如:这里需要禁止测试站点uploads文件夹下的PHP,ASP,JSP脚本的运行,则进行如下图6配置:

(图6) 在配置完成后,重启一下apache,配置便生效!
在操作前,uploads文件夹下我新建了一个index.php文件,图7为未作配置前访问情况
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: