POST TIME:2021-05-24 02:58
//禁止用戶提交某些特殊變量
$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 "你上傳的文件中含有危險內(nèi)容,程序終止處理!";
exit();
}
}
}
第十、最安全的方式:本地發(fā)布html,然后上傳到空間。不包含任何動態(tài)內(nèi)容,理論上最安全,不過維護(hù)相對來說比較麻煩。 