返回列表 发新帖

从PHP安全讲DedeCms的安全加固

580.7k 8
kjeittccdf 发表于 2015-4-1 15:21:42|湖北 | 查看全部 阅读模式
DedeCms做为国内使用最为广泛使用人数最多的CMS之一,经常爆出漏洞,每个漏洞的爆出,影响都是一大片,轻则被人挂广告、弹框,重则服务器成为肉机,宝贵数据丢失。那么有什么办法可以提高DedeCms的安全性呢?4 ?+ A6 @2 e6 E' I/ R+ R
先来看看原因吧,为什么PHP程序经常出漏洞,其实是由PHP程序本身决定的。PHP可复用性低,导致程序结构错综复杂,到处是冗余代码,这样不仅利于漏洞的产生,还影响漏洞的修得;PHP程序入门简单且普遍开源,导致很多人都可直接阅读代码,搜寻漏洞;这样便有源源不断的漏洞被发现、被修复、被发现……。而当前流行的PHP系统习惯用以文件形式做为缓存,这样就需要开放文件的写权限,这无疑成为PHP系统的软肋。目前针对PHP系统的攻击方式,除了已经很少出现的“注入”攻击外,大部分攻击都是通过系统的某个漏洞,向可写文件里插入一句话木马,以此方式获得shell。
" U/ @7 z* ?' i( s! {/ \网站安全从来都是服务器配置、文件权限控制和网站程序三者的相互配合,今天主要看看如果对DedeCms网站程序的改进来提高安全性。“可执行的文件不允许被修改,可写文件不允许被访问”这是网站权限控制的根本原则,网站程序在“可写文件不允许被访问”方面可做许多工作。就拿DedeCMS来说,我们可以在如下几个方式做好保护。6 Z6 r; i% t; j9 T
1、改名根目录下的data目录,或者移动到网站目录外面3 |* R, W; R/ t
data目录便是最藏污纳垢的地方,系统经常要往这个目录写数据,这个目录下的任何一个文件又都可以通过URL访问到,所以要让浏览器访问不到里面的文件,就需要将此目录改名,或者移动到网站的目录外面去。这些,即使别人通过漏洞往文件里写进了一句话木马,他也找不到此木马所在的文件路径,无法继续展开攻击。因为DedeCMS程序的不合理,导致改名data目录动作会比较大,具体做法如下:
- F( S7 a0 p8 {) K0 }, a0 m' wa. 将公开的内容迁移到pub目录(或者其它自定义目录)下,如rss、sitemap、js、enum等,此步骤需要移动文件夹,并修改这些文件的生成路径
8 S: P: V# l# K$ T' C% m# Jb. 修改引用程序目录: \  y& `4 y/ W; H  y, O
搜索替换“DEDEDATA.“/data/” 为 “DEDEDATA.”/”,大概替换五六十个地方;% n$ k1 ]0 \7 A2 d' q) O/ n. J; L9 ~
搜索替换“DEDEDATA.‘/data/” 为 “DEDEDATA.’/”,大概替换五六十个地方;
  R1 }  Y3 f2 B4 W! w, F搜索“/data/”,按具体情况,修改路径类似成为:“$DEDEDATA.“/”(注意include目录和后台管理目录都有data文件夹,不需要修改);' g0 I( u5 p$ Z
c. 修改data文件夹名称,并修改include/common.inc.php文件里的“DEDEDATA”的值,再在后台系统设置》参数设置里修改模板缓存目录,即可修改完成。以后也可以按照此步骤来更改data文件夹名称。
8 f, G/ H1 d0 V2、改名“dede”管理目录,并加固/ q9 P8 t6 X" i- G: a
如果把后台隐藏好了,即使别人获得了你的管理员账号、密码,他也无从登录。; k1 ~. \" V* w
a.在/dede/config.php里,找到如下行:; a2 b; ?0 v5 e3 v7 ~- ~' q7 o  w4 T
以下为引用的内容:. F& s1 @$ e" k" u8 P% e/ t
1 //检验用户登录状态# s1 {4 R8 w  L; _
2 $cuserLogin = new userLogin();' W; D; K# c. g2 a2 U4 d
3 if($cuserLogin->getUserID()==-1)$ ]( s- f3 b5 t9 G9 j: T5 B
4 {4 w. ^0 ]$ H' @. g  H' p
5     header("location:login.php?gotopage=".urlencode($dedeNowurl));
8 E% r; m1 W- \+ y' ^9 C6 c
6 }
2 ]1 `0 Z& l! }" E9 Q+ p . ?9 ^% L# l1 j: w+ c( ~
6 g- p8 u8 l' e$ @
把上面代码,改为:
/ ]+ \9 P7 m' D
以下为引用的内容:2 B. [/ l5 N& r, }
1 //检验用户登录状态# D) N* O' A/ y3 M! G! d- h# @
2 $cuserLogin = new userLogin();: I; G& e% A+ X/ N
3 if($cuserLogin->getUserID()==-1)' @) X% ~* J$ @$ F( @# o3 \
4 {
1 z3 N* E8 T' j* y7 y
5     //header("location:login.php?gotopage=".urlencode($dedeNowurl));
9 Y- r; l& s1 |, l: j0 ^9 V) U
6     header("HTTP/1.0 404 Not Found");
3 t- _. W1 D+ ^, g* N& h5 K  w2 {
7     exit();: o& ~" [1 C3 Y7 g$ d6 J% A8 b
8 }' a5 C; l+ ?* s1 p! I% O
3 }% l! P5 |% q3 G8 g% s! o

( A8 F9 \8 W9 L  u" Q! \3 P5 Ab.修改/dede/login.php的文件名称,并对应的修改/dede/templets/login.htm里的表单提交地址;
5 K/ f- |- G* p# t2 s* {c.修改/dede/的目录名称;
* E  e) t8 k7 m; L0 X这样,别人在没有登录前,只能访问/dede/login.php改名后的地址,访问其他地址均会获得404错误。/ w0 N& G$ `9 |" M' C! E) w' t
当然,做了安全加固后,以后DedeCMS的升级就会有一些麻烦。4 K5 H% `3 a1 Y9 j* g6 b- e' k' i" Z
原文地址:http://www.cnblogs.com/flashlm/archive/2009/09/26/dedecms-security-reinforced.html. N2 ?3 c! I2 K8 t- G# B* B
                                                                        注:相关网站建设技巧阅读请移步到建站教程频道。

回复|共 8 个

bqtklouu 发表于 2015-9-14 22:25:12|美国 | 查看全部
如本人留言违反国家有关法律,请网络管理员及时删除本人跟贴。本回贴不暗示、鼓励、支持或映射读者作出生活方式、工作态度、婚姻交友、子女教育的积极或消极判断。
Mqokjdvq 发表于 2015-9-14 22:25:15|美国 | 查看全部
挨骂也是幸福~~~
gevaemaidovef 发表于 2015-9-14 22:25:50|美国 | 查看全部
呵呵 都没人想我~~
alapScady 发表于 2015-9-14 22:26:09|日本 | 查看全部
我也不知道了~~你把我问蒙了 呵呵
alapScady 发表于 2015-9-14 22:26:31|河北 | 查看全部
这日子没法过了....
wwzcdenleclv 发表于 2015-10-11 12:41:01|美国 | 查看全部
晕 在我帖里面找偶像啊??
gevaemaidovef 发表于 2015-10-11 12:41:20|湖北 | 查看全部
风沙就是由无数松散沙粒组成的,但是他们却又紧密的联系在一起,那股叱诧风云,横击 而过的气概相信大家在作者的文章里也能体会的出来。如果有读者还不能体会的,请参考
bqtklouu 发表于 2015-10-11 12:41:56|Reserved | 查看全部
…没我说话的余地…飘走

回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

得知互动是一个融创意、设计、开发、营销、生活、互联网于一体的专业交流分享平台。
Copyright © 2026 得知互动-专注Ai与站长技术交流社区-Ai交流平台 版权所有 All Rights Reserved. Powered by Discuz! X5.0 鄂ICP备15006301号-5|鄂公网安备 42018502006730号
关灯 在本版发帖 扫一扫添加QQ客服 返回顶部
快速回复 返回顶部 返回列表