今天查页面的源代码时发现了一个问题,就是在中有一段代码,将我某个页面中的表格内容给显示出来了。并且只有在管理员界面中才会出现,而游客访问因为受到限制(被显示的页面为项目名命名空间下的)无法显示。更奇怪的是,被显示的是该页面中的某个特定表格。
mediawiki_head_script.jpg
模板信息表格.jpg
从上面两张图中不难发现,script中的代码就是我表格中的内容,但具体为什么会出现在那里真的一点头绪都没有。网上也搜不到相关的信息,不知道算不算是系统的BUG。代码部分是跟MediaWiki的resourceLoader.php有关。

<script>(RLQ=window.RLQ||[]).push(function(){mw.loader.load("……

而且该问题在匿名用户浏览时并不会出现,即便升级MediaWiki后该问题还是存在。
仔细研究内容的话会发现,这些被泄露出来的内容都被保存在visualeditor-findAndReplace-findText的字段中。从网上有限的资料来看,貌似是一个bug。
打开MediaWiki的数据库,找上述内容中的一部分作为关键字进行搜索,果然有这么一项,位于user_properties数据表下。
直接删掉visualeditor-findAndReplace-findText那条记录(放心,删除了也会重新生成的)。
下图是重新生成后的结果,原本数据量为9.5k。
visualeditor-findAndReplace-findText.png
再次刷新页面,代码消失。

参考资料:
https://phabricator.wikimedia.org/T326696

最后修改:2023 年 12 月 18 日
如果觉得我的文章对你有用,请随意赞赏