织梦系统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]); 

  } 

改为下面代码 

//把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]); 内容来自dedecms 

      } 

      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(); 

  } 



}