DedeCms 万能安全防护代码

softyun3年前cms教程79

为了让大家的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

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

相关文章

让首页问答出现已经解决的问题

\templets\default\index模板中问答部分 {dede:ask row='8'}改为{dede:ask row='' qtype='ok'}官方原帖:40300&2...

DEDECMS时间格式汇总

1.时间格式{dede:field name='pubdate' function='strftime("%Y年%m月%d日 %H:%M:%S","@me")' /}2007年1月1日 18:30:0...

[上一篇--下一篇]只调用本栏目的修改方法

[上一篇--下一篇]只调用本栏目的修改方法(本人测试没有问题),我的版本是Powered by DEDEcms V3.1 LIT具体方法是修改:include/inc_archives_view.ph...

DedeCms调用Discuz论坛主题等数据方法总结

同时使用Dedecms和Discuz论坛的朋友,难免要在网站内调用论坛的内容.使用Discuz论坛的JS调用方式,对搜索引擎不够友好,下面我们来说如何在DedeCms中调用Discuz论坛的数据.说明...

浅析DEDECMS建立模型及分表操作

2004年,刚建站的时候,我曾经用过DEDE2.0,那个时候由于不太懂PHP,就没有搞下去。 版权申明:本站文章均来自网络,本站所有转载文章言论不代表本站观点后来在DEDE3.1时用上了他,感觉不错,...

dede:loop标签下使用[field:global name=autoindex/]方法

教大家一下dede:loop标签下使用[field:global name=autoindex/]的方法,有需要的可以记录一下。用dedecms织梦:loop标签调用论坛贴子时,用 [field:gl...