用DEDECMS搭建网站的安全篇:默认模板路径漏洞

用DEDECMS搭建网站的安全篇:默认模板路径漏洞,第1张

织梦DedeCms全站伪静态,是为了更方便管理和SEO,织梦DedeCms默认是生成静态html文件的,对于优化已经非常友好,但还是有部分页面是动态形式的(比如:Tag标签页面、网站内容搜索页面、DedeCms问答页面等),为了是这些页面更好的被搜索引擎收录,就需要进行伪静态了,虽然织梦DedeCms系统可以生成静态html文件,但如果每天更新内容量特别大的话,对于生成html文件也成为系统和人力的一个负担,那么也可以做成伪静态形式,这样就免去了不断繁琐的生成html文件了。

将DedeCms全站静态化,这就需要mod_rewrite伪静态模块的支持。只要站长对htaccess正则表达式精通,就可以把dede整站静态

化,更符合搜索引擎,而且还可以避免重复URL来。DedeCms全站伪静态配置有些麻烦,主要是需要我们手动修改源代码。整理步骤如下:

1、首先开启站点伪静态功能。登录dede管理员后台->系统->系统基本参数->核心设置->是否使用伪静态 请选择“是”。

2、修改源程序,实现首页伪静态、频道页伪静态、列表页伪静态、文章页伪静态,这是过程比较复杂,不如其它php开源程序操作简单。

3、制作编写htaccess和htaccess文件规则,上传到DedeCms的安装目录。

织梦DedeCms全站伪静态教程:含列表|文章|问答|搜索|TAG伪静态规则:

1、网站服务器和网站空间是否支持伪静态:

这点特别重要,要么所以设置都不起作用。如果你的网站使用的是服务器,那么就可以自己动手设置一下,如果是空间的话,可以询问下IDC服务商客服,看是否

支持伪静态(一般空间都是支持伪静态的)。Apache服务器伪静态相对简单,直接在htaccess文件中加入相应伪静态规则即可;而IIS服务器伪

静态的实现,则需要加载Rewrite组件,然后配置httpdini文件。

2、开启DedeCMS伪静态:

1)织梦DedeCms后台-系统参数-核心设置-是否使用伪静态:选择“是”;

2)如果你启用了织梦DedeCms问答模块,则在后台-系统参数-模块设置-是否使用Rewrite:选择“是”;

3)创建栏目或批量增加栏目时,栏目列表选项:选择“使用动态页”; 添加新文章时,发布选项:选择“仅动态浏览 ”。同样你也可以更改他们的模板,让他们默认就是这两个值,一劳永逸。修改方法很简单,方法如下:

找到后台文件:/dede/templets/catalog_addhtm 修改添加栏目时默认“使用动态页”

<td height="26" style="padding-left:10px;">栏目列表选项:</td>

<td><input type='radio' name='isdefault' value='1' class='np' checked="checked" />链接到默认页

<input type='radio' name='isdefault' value='0' class='np' />链接到列表第一页

<input type='radio' name='isdefault' value='-1' class='np' />使用动态页</td>

改为下面代码

<td height="26" style="padding-left:10px;">栏目列表选项:</td>

<td><input type='radio' name='isdefault' value='1' class='np' />链接到默认页

<input type='radio' name='isdefault' value='0' class='np' />链接到列表第一页

<input type='radio' name='isdefault' value='-1' checked="checked" class='np' />使用动态页</td>

找到后台文件:/dede/templets/article_addhtm 修改添加文章时默认“仅动态浏览”

<td width="90">发布选项:</td>

<td width="379"><input name="ishtml" type="radio" class="np" value="1" checked="1" />生成HTML

<input type="radio" name="ishtml" class="np" value="0"/>仅动态浏览 </td>

改为下面代码

<td width="90">发布选项:</td>

<td width="379"><input name="ishtml" type="radio" class="np" value="1" />生成HTML

<input type="radio" name="ishtml" class="np" value="0" checked="1"/>仅动态浏览 </td>

4)如果网站已经存在生成的静态栏目或文章HTML,那么只需在后台-系统-SQL命令行工具 中执行如下语句:

update dede_arctype set isdefault=-1;

update dede_archives set ismake=-1;

注:命令中dede是网站安装时的数据表前缀,根据实际情况进行替换。

3、开启DedeCms伪静态支持并不能完全在后台配置,有很多地方还是需

要手动修改的。下面讲解DedeCms全站伪静态的实现方法,适用于V53以上版本。这次的DedeCms伪静态测试环境是Windows

IIS6,对于Linux或其它服务器的伪静态实现原理都是一样的,只要搞清楚思路就行。

1)DedeCms首页伪静态:

把站点根目录下indexhtml删除,以后不更新主页HTML就可以了,当然你也可以选择不使用动态首页。

2)DedeCms频道|列表页|文章页伪静态:

主要通过修改GetFileName()、GetTypeUrl()这两个函数实现。DedeCms V53、DedeCms

V55和DedeCms V56版本,打开/include/channelunitfuncphp进行修改。注意:DedeCms

V57,此文件路径更改了,你打开/include/helpers/channelunithelperphp即可。

A将GetTypeUrl()中的如下代码:

  //动态

  $reurl = $GLOBALS['cfg_phpurl']"/listphptid="$typeid;

  替换为

  //动态

  $reurl = "/category/list-"$typeid"html";

  这步必须修改,即让你的频道或是列表页URL变更为/category/list-1html形式。

  B将GetFileName()中的如下代码:

  //动态文章

  if($cfg_rewrite == 'Y')

  {

  return $GLOBALS["cfg_plus_dir"]"/view-"$aid'-1html';

  }

  替换为

  //动态文章

  if($cfg_rewrite == 'Y')

  {

  return "/archives/view-"$aid'-1html';

  }

  将文章页默认的/plus/view-1-1html链接格式改为/archives/view-1-1html,随个人喜好,不改也行。 

3)DedeCms列表分页伪静态:

  打开/include/arclistviewclassphp,找到获取动态的分页列表GetPageListDM()函数末尾处:

  $plist = str_replace('phptid=', '-', $plist);

  替换为

  $plist = str_replace('plus', 'category', $plist);//将默认的plus替换成category

  $plist = str_replace('phptid=', '-', $plist);

  将列表分页默认链接格式/plus/list-1-2-1html修改为/category/list-1-2-1html,这步也可以不作更改。

4)DedeCms文章分页伪静态:

  打开/include/arcarchivesclassphp,找到获取动态的分页列表GetPagebreakDM()函数末尾片:

  $PageList = str_replace("phpaid=","-",$PageList);

  替换为

  $plist = str_replace('plus', 'archives', $plist);//将默认的plus替换成archives

  $PageList = str_replace("phpaid=","-",$PageList);

  这步不作修改也可以,只是个人喜好问题。

5)DedeCmsTAG标签伪静态:

  DedeCms默认的TAG标签URL,形如/tagsphp/dedecms57/,特别的难看。打开/include/taglib/taglibphp,找到lib_tag()函数下的:

  $row['link'] = $cfg_cmsurl"/tagsphp/"urlencode($row['keyword'])"/";

  替换为

  $row['link'] = $cfg_cmsurl"/tags/"urlencode($row['keyword'])"/";

  到这里,TAG标签URL中的“php”号就去掉了。

6)DedeCms搜索伪静态:

  DedeCms搜索URL静态化比较麻烦,附带参数多不说,参数也可能变化,像搜索结果分页的URL就特麻烦,伪静态规则匹配复杂。将搜索URL中“searchphp…”直接替换为“searchhtml…”,至于“”号之后的参数以任意字符进行匹配。

  依次打开include文件夹下的channelunitfuncphp、arcsearchviewclassphp、

arctaglistclassphp以及/include/taglib/hotwordslibphp,查找“searchphp”替

换为“searchhtml”即可。

7)DedeCms问答伪静态:

  问答模块的伪静态实现比较简单,只要后台开启伪静态支持即可,至于个别页面,如ask目录下的browserphp、questionphp以及

include目录下的commonincphp、functionsincphp都需要简单修改才可以匹配伪静态规则。注意一

点,DedeCms V57问答模块整体升级了,之前的规则已经不适用了。

4、DedeCms伪静态规则:

依照上面的步骤修改完毕,接下来配置好httpdini文件和htaccess文件伪静态规则,则DedeCms全站伪静态就完美实现。

1)IIS伪静态

  打开httpdini文件,加入如下规则:

  #首页伪静态规则,如果不使用动态首页,请勿必删除这一行,否则打开首页会出现死循环

  RewriteRule ^()/index\html $1/index\php [I]

  #列表页伪静态规则

  RewriteRule ^()/category/list-([0-9]+)\html $1/plus/list\php\tid=$2 [I]

  RewriteRule ^()/category/list-([0-9]+)-([0-9]+)-([0-9]+)\html

$1/plus/list\php\tid=$2&TotalResult=$3&PageNo=$4 [I]

  #文章页伪静态规则

  RewriteRule ^()/archives/view-([0-9]+)-([0-9]+)\html $1/plus/view\php\arcID=$2&pageno=$3 [I]

  #搜索伪静态规则

  RewriteRule ^()/search\html(:(\)) $1/search\php$2 [I]

  #TAG标签伪静态规则

  RewriteRule ^()/tags\html $1/tags\php [I]

  RewriteRule ^()/tags/()(:(\)) $1/tags\php\\/$2 [I]

  RewriteRule ^()/tags/()\/(:(\)) $1/tags\php\\/$2\/ [I]

  RewriteRule ^()/tags/()\/([0-9])(:(\)) $1/tags\php\\/$2\/$3 [I]

  RewriteRule ^()/tags/()\/([0-9])\/(:(\)) $1/tags\php\\/$2\/$3\/ [I]

  #问答伪静态规则,适用于DedeCmsV53-56版本,需要修改几处程序

  RewriteRule ^()/post\html $1/post\php [I]

  RewriteRule ^()/type\html $1/type\php [I]

  RewriteRule ^()/question-([0-9]+)\html $1/question\php\id=$2 [I]

  RewriteRule ^()/browser-1-([0-9]+)\html $1/browser\php\tid=$2 [I]

  RewriteRule ^()/browser-2-([0-9]+)\html $1/browser\php\tid2=$2 [I]

  RewriteRule ^()/browser-1-([0-9]+)-([0-9]+)\html $1/browser\php\tid=$2&page=$3 [I]

  RewriteRule ^()/browser-2-([0-9]+)-([0-9]+)\html $1/browser\php\tid2=$2&page=$3 [I]

  RewriteRule ^()/browser-([0-9]+)\html $1/browser\php\lm=$2 [I]

  RewriteRule ^()/browser-1-([0-9]+)-([0-9]+)\html $1/browser\php\tid=$2&lm=$3 [I]

  RewriteRule ^()/browser-2-([0-9]+)-([0-9]+)\html $1/browser\php\tid2=$2&lm=$3 [I]

2)Apache伪静态:

打开htaccess文件,加入如下规则:

  #提供部分规则作参考

  RewriteRule ^category/list-([0-9]+)\html$ /plus/listphptid=$1

  RewriteRule ^category/list-([0-9]+)-([0-9]+)-([0-9]+)\html$ /plus/listphptid=$1&totalresult=$2&PageNo=$3

  RewriteRule ^archives/view-([0-9]+)-([0-9]+)\html$ /plus/viewphpaid=$1&pageno=$2

RewriteRule ^indexhtml$ indexphp

在dedecms的templates/default里找到indexhtm。这个是dedecms默认的主页模板,把这个打开,找到轮播的JS代码复制出来到你自己的模板里。

下面来根据需要改代码了。dedecms轮播默认是有标题的。我这里是不需要这个功能,所以把它取掉了。修改了几个地方。textarr = new Array();var texts = "";首先把这两个删除。(第一个数组变量是用来存储标题的,第二个变量,是当前的标题。)。dedecms这个代码里,有一个配置变量,是有说明的,大家可以根据说明去修改。因为我为里只是要删除标题,所以把和标题相关的配置删除就OK了。(最终结果:var configtg='2|3|1|_blank';)。在把dedecms标签里的:textarr[[field:globalautoindex/]] = "[field:title function='html2text(@me)'/]";这一段删除,下面还有一个循环遍历标题的,也要删除。dedecms轮播这里是采用的flash的方式,所以在<object>里还要删除和标题相关的参数。这些工作都做完后,就开始在后台添加了。在刚才自己新建的栏目里,新建文章,输入文章标题

分别√选,幻灯、滚动、、跳转

在出来的跳转网址的地方,输入你要跳转到的地址

然后上传,在缩略图这里上传,而非文章正文。文章正文留为空。

一般是你网站程序有漏洞才会被挂马的,有些木马代码直接隐藏在DEDECMS的主程序里。建议你找专业做网站安全的sinesafe来给你解决。

建站一段时间后总能听得到什么什么网站被挂马,什么网站被黑。好像入侵挂马似乎是件很简单的事情。其实,入侵不简单,简单的是你的网站的必要安全措施并未做好。

有条件建议找专业做网站安全的sine安全来做安全维护。

一:挂马预防措施:

1、建议用户通过ftp来上传、维护网页,尽量不安装asp的上传程序。

2、定期对网站进行安全的检测,具体可以利用网上一些工具,如sinesafe网站挂马检测工具!

序,只要可以上传文件的asp都要进行身份认证!

3、asp程序管理员的用户名和密码要有一定复杂性,不能过于简单,还要注意定期更换。

4、到正规网站下载asp程序,下载后要对其数据库名称和存放路径进行修改,数据库文件名称也要有一定复杂性。

5、要尽量保持程序是最新版本。

6、不要在网页上加注后台管理程序登陆页面的链接。

7、为防止程序有未知漏洞,可以在维护后删除后台管理程序的登陆页面,下次维护时再通过ftp上传即可。

8、要时常备份数据库等重要文件。

9、日常要多维护,并注意空间中是否有来历不明的asp文件。记住:一分汗水,换一分安全!

10、一旦发现被入侵,除非自己能识别出所有木马文件,否则要删除所有文件。

11、对asp上传程序的调用一定要进行身份认证,并只允许信任的人使用上传程序。这其中包括各种新闻发布、商城及论坛程

二:挂马恢复措施:

1修改帐号密码

不管是商业或不是,初始密码多半都是admin。因此你接到网站程序第一件事情就是“修改帐号密码”。帐号

密码就不要在使用以前你习惯的,换点特别的。尽量将字母数字及符号一起。此外密码最好超过15位。尚若你使用

SQL的话应该使用特别点的帐号密码,不要在使用什么什么admin之类,否则很容易被入侵。

2创建一个robotstxt

Robots能够有效的防范利用搜索引擎窃取信息的骇客。

3修改后台文件

第一步:修改后台里的验证文件的名称。

第二步:修改connasp,防止非法下载,也可对数据库加密后在修改connasp。

第三步:修改ACESS数据库名称,越复杂越好,可以的话将数据所在目录的换一下。

4限制登陆后台IP

此方法是最有效的,每位虚拟主机用户应该都有个功能。你的IP不固定的话就麻烦点每次改一下咯,安全第一嘛。

5自定义404页面及自定义传送ASP错误信息

404能够让骇客批量查找你的后台一些重要文件及检查网页是否存在注入漏洞。

ASP错误嘛,可能会向不明来意者传送对方想要的信息。

6慎重选择网站程序

注意一下网站程序是否本身存在漏洞,好坏你我心里该有把秤。

7谨慎上传漏洞

据悉,上传漏洞往往是最简单也是最严重的,能够让黑客或骇客们轻松控制你的网站。

可以禁止上传或着限制上传的文件类型。不懂的话可以找专业做网站安全的sinesafe公司。

8 cookie 保护

登陆时尽量不要去访问其他站点,以防止 cookie 泄密。切记退出时要点退出在关闭所有浏览器。

9目录权限

请管理员设置好一些重要的目录权限,防止非正常的访问。如不要给上传目录执行脚本权限及不要给非上传目录给于写入权。

10自我测试

如今在网上黑客工具一箩筐,不防找一些来测试下你的网站是否OK。

11例行维护

a定期备份数据。最好每日备份一次,下载了备份文件后应该及时删除主机上的备份文件。

b定期更改数据库的名字及管理员帐密。

c借WEB或FTP管理,查看所有目录体积,最后修改时间以及文件数,检查是文件是否有异常,以及查看是否有异常的账号。

网站被挂马一般都是网站程序存在漏洞或者服务器安全性能不达标被不法黑客入侵攻击而挂马的。

网站被挂马是普遍存在现象然而也是每一个网站运营者的心腹之患。

您是否因为网站和服务器天天被入侵挂马等问题也曾有过想放弃的想法呢,您否也因为不太了解网站技术的问题而耽误了网站的运营,您是否也因为精心运营的网站反反复复被一些无聊的黑客入侵挂马感到徬彷且很无耐。有条件建议找专业做网站安全的sine安全来做安全维护。

具体方法如下:

1、DedeCMS默认风格里,顶部左边有一段话"织梦CMS - 轻松建站从此开始!",很多朋友想把这段话修改成一个横向登录框,像织梦吧(dedecms8com)顶部一样。

2、打开头部公用模板文件templets/default/headhtm,找到如下汉字:

3、把上图里汉字,替换为如下代码:

<div id="_userlogin">

<form name="userlogin" action="{dede:globalcfg_memberurl/}/index_dophp" method="POST">

<input type="hidden" name="dopost" value="login" />

<span>用户名:</span>

<input type="text" name="userid" size="10" class="ipt-txt" />

<span>密码:</span>

<input type="密码" name="pwd" size="10" class="ipt-txt" />

{dede:php}

if(preg_match("#2#", $safe_gdopen)){

echo '

<span>验证码:</span>

<input type="text" name="vdcode" size="8" class="ipt-txt" />

<img id="vdimgck" align="absmiddle" style="cursor:pointer;margin-left:0px;text-transform:uppercase;" alt="看不清?点击更换" src="'$cfg_cmspath'/include/vdimgckphp"/>';}

{/dede:php}

<button type="submit" class="btn-1">登录</button>

<a href="{dede:globalcfg_memberurl/}/index_dophpfmdo=user&dopost=regnew" >注册账号</a> <a href="{dede:globalcfg_memberurl/}/reset密码php">忘记密码</a>

</form>

</div>

<script language="javascript" type="text/javascript">CheckLogin();</script>

  改后:

4、其实仅仅这段代码还不够,还需要完成下一步才能达到效果:

那么,我这里为什么没有加这段代码呢这是因为默认主页模板文件indexhtm里,已经包涵了这段代码。如果没有,或被自己删除了,请添加在indexhtm里之前。

打开member/ajax_loginstaphp文件,找到如下代码

5、上图红色框内的代码,即为登录成功后,返回用户信息。多数时候,我们的顶部导航没太宽的地方,以显示这些数据,所有完全没必要全部返回这些信息,可以适当减少几项,并且对div做美化,以达到美观体验。这里,简单做下调整,如下:

6、更新生成后,可以看到如下效果:

这样一个顶部横向登录框就制作完了。

这个很烦人的,主要是后台程序造成的。如果后台不常用。那就把后台那个文件夹删了,用到的时候再加上去,不用的时候删除。我被折磨了一个多星期。搜到的方法都用了。还是天天被改。才想到这个。现在这几天好了。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 用DEDECMS搭建网站的安全篇:默认模板路径漏洞

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情