[TOC]
# DEDECMS保护设置
因为,dedecms漏洞相对较多,容易成为被攻击的对象,所以有必要遵循下面的规则保护dedecms系统。
**隐藏dedecms可能暴露的特征信息**
使用的静态资源禁止放置在模板路径中,比如使用的模板目录是`default`,则,不允许在`templets/default`路径下面直接放置静态资源和静态资源文件夹:
~~~
<!-- 禁止这样 -->
...
<link rel="stylesheet" type="text/css" href="//www.domain.com/templets/default/css/base.css">
...
~~~
**1. 关于DEDECMS栏目模板和文件的命名规则**
**模板命名规则:`栏目名称_模板类型_内容模型.htm`**
1. 栏目名称为该栏目的英文名称,命名规则参考`命名规则`章节的目录名称方式,遇到两个以上单词的请使用驼峰命名方式。
比如新闻栏目(news),体育视频(sportsVideo)
2. 模板类型,DEDECMS将模板类型分为了3个固定类型
`封面:index`
`列表:list`
`文章:article`
3. 内容模型可能的选项有:
`商品:shop`(不常用)
`软件:soft`(不常用)
`图片集:image`(不常用)
`普通文章:article`(最常用)
`专题:spec`(不常用)
`分类信息:infos`(不常用)
以上为系统自带几种内容模型类型,我们可以扩展
...
因此,根据上面的命名和规则,一个页面为列表页,属于普通文章模型,该页面主体内容是新闻,栏目英文名称为news,则对于该页面的模板名称为:`news_list_article`。如果我不想用默认的普通文章模型,而使用自定义的一个模型(news)制作这个页面,则可以定义这个模板名称为`news_list_news`。
另外一个例子,有一个栏目是关于体育视频(sports video)的,且也自定义了一个视频模型(video),则这个栏目的内容页名称`sportsVideo_article_video.htm`
建议,为每个新建栏目建设一个新的模型,以达到优化数据表的目的。
**文件命名规则**
文章名称规则:`{typedir}/{aid}.html`
列表命名规则:`{typedir}/{page}.html`或者`{typedir}/list_{page}.html`
aid和page分别表示当前内容文档的ID值和当前列表页面的ID值
**2. 文件保存目录**
若当前栏目名称为`foo`,且是顶级栏目,则保存目录为`{cmspath}/foo`,
若在`foo`下面还一层栏目为`bar`,则改栏目的保存路径为`{cmspath}/foo/bar`。
其他,依此类推。
**3. 模板文件说明**
需要修改`/templets/templet-filelist.inc` 文件,一行一个说明:左侧是文件名右边是说明,中间`,`分开
~~~
...
rss.htm,订阅模板
404.htm,404页面模板
...
~~~
**4. 附件路径和其他路径修改**
dedecms附件路径是`uploads`,特别是图片路径`/uploads/allimg/日期/随机字符串.png`。对dedecms熟悉的人可以一眼判断出来,所以需要修改一下图片附件的路径,比如`/uploads/img/日期/随机字符串.png`.对应的缩略图目录也可以改成`thumb`或者其他名称。并建议使用二级域名的形式访问。
> 假设上传的文件原始URL:www.example.com/uploads/allimg/日期/随机字符串.png, 可以改成 uploads.example.com/img/日期/随机字符串.png
另外,插件目录默认是`plus`,最好也将这个目录名称修改一下,比如`plugin`。
修改文件`include/common.inc.php`
~~~
//插件目录,这个目录是用于存放计数器、投票、评论等程序的必要动态程序
$cfg_plus_dir = $cfg_cmspath.'/plus';
//这里plus 改成其他路径
//上传的普通图片的路径,建议按默认
$cfg_image_dir = $cfg_medias_dir.'/allimg';
//这里alimg 改成其他路径
~~~