小樱 发表于 2025/2/3 23:45

discuz 3.4这种机器人访问到的authorid只看该作者链接会导致游客缓存出现异常,倒序浏览未登录账号显示错误的data/threadcache静态文件数据

discuz 3.4这种机器人访问到的authorid只看该作者链接会导致游客缓存出现异常,倒序浏览未登录账号显示错误的data/threadcache静态文件数据

几年前就发现的一个现象,启用页面缓存后游客访问异常,和以前提交过的 只看大图模式 估计一个原因
https://bbs.itzmx.com/thread-94873-1-1.html

重现链接
https://bbs.itzmx.com/forum.php?authorid=39010&mobile=1&mod=viewthread&page=8&tid=96390
应该是page=1,因为page=8的时候无法复现

翻了一下discuz之前更新的源码,应该是upload/source/module/forum/forum_viewthread.php 这个文件控制缓存
if($_G['setting']['cachethreadlife'] && $_G['forum']['threadcaches'] && !$_G['uid'] && $page == 1 && !$_G['forum']['special'] && empty($_GET['do']) && empty($_GET['from']) && empty($_GET['threadindex']) && !defined('IN_ARCHIVER') && !defined('IN_MOBILE') && !IS_ROBOT) {

改为
if($_G['setting']['cachethreadlife'] && $_G['forum']['threadcaches'] && !$_G['uid'] && $page == 1 && !$_G['forum']['special'] && empty($_GET['ordertype']) && empty($_GET['authorid']) && empty($_GET['action']) && empty($_GET['do']) && empty($_GET['from']) && empty($_GET['threadindex']) && !defined('IN_ARCHIVER') && !defined('IN_MOBILE') && !IS_ROBOT) {


还有一个问题是,&action=printable打印机页面,不过看到老周部落提交的pr已经修复了
关联:https://gitee.com/Discuz/DiscuzX/commit/6250701ae2eabb290d1d799e7d9ffc3bfa787e43

还有个是倒序浏览,这个虽然影响不大,但是在本贴中一起修复了,还发现了个版块列表无法缓存的问题,估计是排除from,,这个重要程度不高,不知道什么原因,帖子能正常游客缓存就好

页: [1]
查看完整版本: discuz 3.4这种机器人访问到的authorid只看该作者链接会导致游客缓存出现异常,倒序浏览未登录账号显示错误的data/threadcache静态文件数据