DedeCms 万能安全防护代码

softyun3年前cms教程61

为了让大家的CMS更安全,有需要的手工在config_base.php里加上
打开
config_base.php
找到
//禁止用户提交某些特殊变量
$ckvs = Array('_GET','_POST','_COOKIE','_FILES');
foreach($ckvs as $ckv){
if(is_array($$ckv)){
foreach($$ckv AS $key => $value)
if(eregi("^(cfg_|globals)",$key)) unset(${$ckv}[$key]);
}
}

改为下面代码
//把get、post、cookie里的<? 替换成 <?
$ckvs = Array('_GET','_POST','_COOKIE');
foreach($ckvs as $ckv){
if(is_array($$ckv)){
foreach($$ckv AS $key => $value)
if(!empty($value)){
${$ckv}[$key] = str_replace('<'.'?','&'.'lt;'.'?',$value);
${$ckv}[$key] = str_replace('?'.'>','?'.'&'.'gt;',${$ckv}[$key]);
}
if(eregi("^cfg_|globals",$key)) unset(${$ckv}[$key]);
}
}
//检测上传的文件中是否有PHP代码,有直接退出处理
if (is_array($_FILES)) {
foreach($_FILES AS $name => $value){
${$name} = $value['tmp_name'];
$fp = @fopen(${$name},'r');
$fstr = @fread($fp,filesize(${$name}));
@fclose($fp);
if($fstr!='' && ereg("<\?",$fstr)){
echo "你上传的文件中含有危险内容,程序终止处理!";
exit();
}
}
}

这样处理之后,安全上理论上可中做到一劳永逸,但缺点是使用此功能后,不能在线上传PHP文件,如果你的站点同时支持asp、aspx等,在此基础上修改一下上述代码即可

考虑到dede如果出现问题把损失减到最小,原本在高级支持区发的内容转移给大家共享

官方原帖:15538&2

免责声明:本文内容来自用户上传并发布,站点仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。请核实广告和内容真实性,谨慎使用。

相关文章

栏目内容过多如何分为2行显示

很多人栏目内容过多,需要分成2行,解决办法如下:修改/templets/default/dedecms.css修改188行为以下内容:Copy code.header .nav{ width:100%...

织梦dedecms列表list调用文章作者并指向个人主页链接

今天教大家一下织梦dedecms列表list调用文章作者并指向个人主页链接的方法。这个文章调用的方法是经过测试,确认可用的方法,大家可以尝试一下       指向后台管理的链接一般是<a hre...

不在同一个服务器里的dede数据库之间数据调用方法

织梦dedecms数据库不在同一个服务器,数据调用方法!data/common.inc.php这个是保存数据库连接信息的,改下这个文件就可以了。<?php  //数据库连接信息  $cfg_db...

DEDECMS 游客投稿三步搞定

这个方法相当简单,只用屏蔽掉几行代码就可以了。。。先找到这三个文件/member/article_add.php/member/article_add_action.php/member/archiv...

{dede:arclist}的学习心得,调用文章或者软件任何字段

基本语法:{dede:arclist typeid='' row='' col='' titlelen='' infolen='' imgwidth='' imgheight='' listtype=...

织梦Cms防黑客攻击必须要做的几件事!

织梦dedeCms防黑客攻击必须要做的几件事!以下目录:data、templets、uploads、a设置可读写不可执行权限。其中a目录为文档HTML默认保存路径,可以在后台进行更改。以下目录:inc...