解決ecshop模板不支持php代碼,修改ecshop過濾模板php代碼!
ECshop的模板是支持php代碼的,主要是為了防范掛馬,這個給一些不法分子創造了掛馬的機會,這些不法分子掛馬步驟很可能是:
1、通過ecshop的漏洞搞SQL注入,暴出管理員密碼md5值,然后通過**md5得到管理密碼。(注:防止暴出管理密碼md5值的方法是關閉display_errors,并且修改cls_mysql.php里的ErrorMsg函數,注釋掉所有錯誤輸出代碼或把錯誤寫入文件)
2、進入管理后臺,通過模板管理->庫項目管理,編輯lbi文件,添加php代碼,例如<?php @eval($_POST['lx']);?>
3、到這里,就完全控制這個站了,想掛什么馬就掛什么馬。
可見,ECshop的模板支持php代碼這點是非常危險的,因此我們應該過濾模板里的所有php代碼。
方法如下:
1、修改cls_templage.php文件,添加函數:
function delete_php_code($content)
{
if(!empty($content))
{
$pattern='/<?(.|rn|s)*?>/U';
return preg_replace($pattern,'',$content);
}
}
2、第165行$out = $this->_eval($this->fetch_str(file_get_contents($filename)));修改為:
$out = $this->_eval($this->fetch_str($this->delete_php_code(file_get_contents($filename))));
3、第260行$source = $this->fetch_str(file_get_contents($filename));修改為:
$source = $this->fetch_str($this->delete_php_code(file_get_contents($filename)));
這樣,模板里的php代碼就被過濾掉了。
新聞熱點
疑難解答