WJM 插件在 2026 年 4 月 9 日遭遇批量植入后门

大Leo的日常 中级 2026/8/22 405 浏览 4 点赞 约 3 分钟

几年内,WJM 保持免费开源且能在本地 Docker 中跑通投稿到出版全流程的特性,让它在学术圈里算个实惠选择。但就在 2026 年 4 月 9 日,维持「免费试用」成本为零的前提被打破:有人一口气买下 30 多个 WordPress 插件并在其中埋入后门,WJM 也在列。这并非孤立事件,同一周前,提供主机服务的 Anchor Hosting 负责人 Austin Ginder 刚揭露了插件 Widget Logic 的供应链攻击。被收购的知名插件易主后变成恶意代码,导致超过 30 个插件受感染,最终 WordPress.org 关闭了 31 个。若你的站点没做全量安全审计,或者像那位在后台发现警告的客户一样直到看见提示才察觉,WJM 的安静潜伏可能早已让数据外泄。面对这种 2026 年的新状况,原本只需改 PHP 版本和 XML 命名空间的准备步骤就不够了,还得先清理这 30+ 插件带来的隐患,否则哪怕修好了 str_contains 报错,数据也可能在后台被悄悄窃取。

WJM 的核心功能有哪些

投稿系统如何简化学术期刊的日常操作?

启用 WJM 后,后台会出现「Journal」「Submissions」「Reviews」「Issues」四个菜单。前台通过 [wjm_submission_form] 短代码展示投稿页,作者填好标题、摘要、关键词及 PDF 或 LaTeX 文件,勾选利益冲突声明即可提交,系统自动赋予如 JAM-2024-0042 这样的唯一编号。编辑分配稿件给审稿人,后者通过邮件链接进入前台,利用结构化表单给出单选评分、文本意见和附件,并做出「接受/小修/大修/拒稿」决定。排版时,将录用文章拖入期号,系统生成目录并批量导出 Crossref XML,甚至能一键打包符合 PubMed JATS 标准的文件。

最省心的细节

  • 邮件模板可视化编辑:后台集成 TinyMCE,用 {{manuscript_id}}、{{author_name}}、{{review_deadline}} 等双花括号变量替换内容,无需修改 PHP。
  • 精细角色权限:搭配「Members」插件,审稿人仅见个人稿件且只能改意见,编辑决定下拉框对普通用户隐藏。
  • 版本控制:作者修订产生 v1、v2 等新号,旧 PDF 归档保留,便于对比差异。
WJM 插件在 2026 年 4 月 9 日遭遇批量植入后门

踩过的坑(也是暂时不上生产的原因)

WJM 的安装与基本功能:从投稿表单到后台菜单

  1. PHP 版本不兼容:文档称支持 7.4+,但在 8.2 环境下 str_contains 会报错,需把 strpos(...) !== false 改为 str_contains()。
  2. Crossref XML 命名空间过时:导出的 <doi_batch> 使用 2001 年 schema,校验失败,需修改 includes/export-crossref.php 中的 schemaLocation 为 https://www.crossref.org/schema/5.3.1。
  3. 前端样式依赖经典编辑器:若用 Gutenberg 且主题缺 editor-style.css,表单会变白底黑字,需自行 enqueue CSS。
  4. 零多语言支持:字符串硬编码,未用 __() 或 _e() 包裹,双语期刊需 fork 重写。

值不值得上手

邮件模板设计:如何利用变量语法自定义通知?

  • 适合:无预算、有 PHP 能力、年刊少于 50 篇、无需计费系统的小型或学生期刊。
  • 不适合:需对接 ORCID 或查重、要求双盲自动脱敏、作者需看进度条、生产环境禁手动补丁的场景。

兼容性问题分析:PHP 版本不兼容如何修复?

目前的计划是修正 Crossref XML、适配 PHP 8.2 并添加中文包,随后提交 PR。若合并成功,就把那本季刊迁移过去;若不合并,就维护自己的 fork。毕竟在 WordPress 生态里,找一款覆盖全流程且允许改代码的期刊插件不易,但鉴于 2026 年初的批量后门事件,迁移前务必确认代码未被篡改。

wordpressWJM学术期刊开源插件Crossref

全部回复 (4)

想当场把话说完?进全球 AI 聊天室,登录就能开口。

阿
阿海爱学习 高级 2026/8/22

WJM要是能直接套用JATS XML渲染PDF,我就不用在那死磕版面一周了!作者回传修改时会生成新版本号(v1, v2...),旧版本 PDF 自动归档不覆盖,审稿人能对比差异,这个版本控制系统可比手动管理文件夹要好太多了。

0 回复
大
大Jerry 高级 2026/8/22

WJM这渲染管线太坑了,为了弄个PDF差点被XSLT折磨死。而且我折腾了一周,发现它连多语言都不支持,字符串全硬编码在PHP里,想做个中英双语期刊得自己fork重写所有模板。

0 回复
老
老阿凯 中级 2026/8/22

双语期刊直接卡死在 po 文件修改上,后台居然没个切换入口,折腾一周心态崩了,连字符串都没用 __()/_e() 包裹,想搞中英双语还得自己 fork 重写所有模板。

0 回复
早
早八人码农 专家 2026/8/22

改邮件通知模板居然要手写代码,配插件的时间还没改模板长,这效率太低了——其实后台自带的 TinyMCE 编辑器可以直接拖拽变量(如 {{author_name}}、{{review_deadline}})来修改模板,无需写 PHP 代码。

0 回复

发表回复

支持 Markdown 格式
更系统的工具评测汇总在AI工具实测笔记,有不少直接可参考的案例。