最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
织梦Dedecms网站安全优化之重定义目录
时间:2022-06-25 19:27:45 编辑:袖梨 来源:一聚教程网
很久之前就在寻找重新定义织梦(dede)目录结构的教程,但是苦苦寻找之后还是无果!
前段时间,用织梦做了一个学校的网站,放到服务器上没过一周,网站就被注入黑链。相比之前学校新闻网,这次来的更狠,前台后台一并注入,并嵌入很多隐藏的iframe。没办法,这次我也得狠点。
更改织梦默认目录名,只是在一定程度上加大黑客判断网站系统为dede,从而加到攻击难度。(用点简单的seo/seo.html" target="_blank">搜索引擎技巧,就可以找到一片织梦站点,如:inurl:/plus/view.php?aid=作关键字百度谷歌一下)。
接下来,简单说一下到底要做什么。首先把织梦安装在站点的子目录,然后再把常用的模块及目录转移到网站的根目录,并重新命名。如此,就可以把你排除在那一片的织梦站点外了。
关于织梦安装到子目录,就不多说了。如果你想把根目录的织梦站点转移到子目录,你可以参考:织梦网站搬家及常见问题解决汇总。
织梦安装在子目录,新闻显示在根目录
关于织梦新闻要显示和根目录一样,有如下三个步骤。
配置当前位置中的主页链接http://www.111cn.Net
下面截一张图,如下:
DEDE-CMS后台参数设置1
按以上操作之后,网站中,当前位置的“主页”链接就变成了”http://www.111com.net/”
生成网站首页
如果你选择网站浏览方式为静态的话,你必须把下图中的主页位置中的“../index.html”更改为“../../index.html”。
织梦主页更新向导
如果你更喜欢网站为动态浏览的话,你可以新建一个名为index.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)
Deny from all
配置内容中的DIR为需要限制执行脚本文件的目录,FilesMatch后的内容为需要限定的执行的脚本后缀名。例如:这里需要禁止测试站点uploads文件夹下的PHP,ASP,JSP脚本的运行,则进行如下图6配置:
(图6)
在配置完成后,重启一下apache,配置便生效!
在操作前,uploads文件夹下我新建了一个index.php文件,图7为未作配置前访问情况
相关文章
- 《弓箭传说2》新手玩法介绍 01-16
- 《地下城与勇士:起源》断桥烟雨多买多送活动内容一览 01-16
- 《差不多高手》醉拳龙技能特点分享 01-16
- 《鬼谷八荒》毕方尾羽解除限制道具推荐 01-16
- 《地下城与勇士:起源》阿拉德首次迎新春活动内容一览 01-16
- 《差不多高手》情圣技能特点分享 01-16