基本可以看出它把<a>标签的其他属性也当成url的一部分了。
原因:
source\function\function_blog.php中如下代码正则表达式有漏洞:
$POST['message'] = preg_replace(array(
"/\<div\>\<\/div\>/i",
"/\<a\s+href\=\"([^\>]+?)\"\>/ie"
), array(
'',
'blog_check_url(\'\\1\')'
), $POST['message']);
它从href开头一个引号一直匹配到结束标签前的一个引号,这样肯定是不对的咯,因为除了href外,还有其他的属性。解决方法:
改为如下代码,代码很简单,不解释。
$POST['message'] = preg_replace(array(
"/\<div\>\<\/div\>/i",
"/\<a\s+href\=\"([^\>]+?)\"[^>]*\>/ie"
), array(
'',
'blog_check_url(\'\\1\')'
), $POST['message']);