找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 85|回复: 0

[cms教程] DedeCms 万能安全防护代码

[复制链接]

该用户从未签到

发表于 2019-3-20 21:52:00 | 显示全部楼层 |阅读模式

您需要 登录 才可以下载或查看,没有账号?立即注册

×
DedeCms 万能安全防护代码
            为了让大家的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,);
               
                          }
               
                        }
               
                         
        [/ol,
改为下面代码
        复制代码
       
               
                        //把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('
                                ${$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("
                              echo "你上传的文件中含有危险内容,程序终止处理!";
               
                              exit();
               
                          }
               
                        }
               
                        }
               
                         
        [/ol,
这样处理之后,安全上理论上可中做到一劳永逸,但缺点是使用此功能后,不能在线上传PHP文件,如果你的站点同时支持asp、aspx等,在此基础上修改一下上述代码即可
考虑到dede如果出现问题把损失减到最小,原本在高级支持区发的内容转移给大家共享
回复

使用道具 举报

网站地图|页面地图|文字地图|Archiver|手机版|小黑屋|找资源 |网站地图

GMT+8, 2024-9-28 19:20

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表