[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 改成其他路徑
~~~