解决Discuz X3日志页面链接乱码错乱问题
清泛原创
现象:
基本可以看出它把<a>标签的其他属性也当成url的一部分了。
原因:
source\function\function_blog.php中如下代码正则表达式有漏洞:
解决方法:
改为如下代码,代码很简单,不解释。
基本可以看出它把<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']);
上一篇:SEO利器,phpcms 08版HTML文件名功能重返V9
下一篇:phpcms后台表单多选统计不准确的解决方法