discuz3.4,关于安装dev8133插件(购买帖子内容),在论坛对用户组开启评分功能后,用户一点击评分,确定提交后,短暂的将dev8133标签内隐藏的内容暴露了。

发布时间 2023-08-24 23:35:36作者: ingemar,fang

漏洞修补方案一:后端措施

在source/module/forum/forum_misc.php文件中,$post = C::t('forum_post')->fetch('tid:'.$_G['tid'], $_GET['pid']);//这一步调用大C的静态方法t()从表forum_post中根据tid和pid共同查询出当前要评分的帖子主体内容

对此处查询出来的$post数据直接后端进行匹配删除,匹配到[dev8133开始的字符串直接将其删除,然后前端就根本没有数据可言。

所以说,一般漏洞修补改后端代码安全性最高。唯一利弊就是加重后端服务器的运算能力。

 

漏洞修补方案二:前端手段

在common.js中,对从后端ajax请求后得到的数据,回来进行判断,如果包含[dev8133字符串,则在if语句里面执行location.reload();刷新当前页面。

discuz它的做法是,先删掉本楼的帖子所有内容,然后用innerhtml重新绘制,没有刷新当前整个页面,这导致[dev8133标签放在“”这个里面当成字符串处理了。