PHPCMS2008問吧模塊安全漏洞的解決辦法
檢查/ask/show.php發(fā)現(xiàn),存在如下脆弱語句
$posts['message'] = $M['use_editor'] ? $posts['message'] : strip_tags($posts['message']);
其中如果使用了在線編輯器,則不會(huì)對(duì)頁面中的html代碼進(jìn)行過濾!這樣XSS、iframe攻擊將變得輕而易舉?。?
并且這樣的情況在show.php、query.php、question.php中全部存在。
解決辦法很簡(jiǎn)單,對(duì)$posts['message']中的HTML代碼進(jìn)行安全過濾。
function stripDangerHtml($str){
$pattern = array(
"/s+/",
"/<(/?)(script|i?frame|style|html|body|title|link|meta|?|\%)([^>]*?)>/isU",
"/(<[^>]*)on[a-zA-Z]+s*=([^>]*>)/isU",
);
$replacement = array(
" "," ","[url=file://12]12[/url]",
);
$safeStr = preg_replace($pattern,$replacement,$str);
return $safeStr;
}