Skip to content

pupu v0.2.6

Choose a tag to compare

@github-actions github-actions released this 15 Sep 02:57
· 31 commits to main since this release

本版本是安全修复版,建议所有用户更新。

🔒 安全修复

1. 可信域名校验可被绕过

*.example.com 形式的通配符判断缺少子域点边界,导致 evilpupu.app 这类同后缀但不属于该域的域名被误判为可信。而可信域名列表正是「允许该网站调用扩展发布能力 / API」的授权凭据。

  • 影响:若你的可信域名列表里存在 *.xxx 形式的条目,同后缀域名会被一并放行
  • 修复:两处判断(后台与内容脚本)统一收敛为带点边界的匹配,并补了 15 个单元测试
  • 建议顺带检查一下设置页里的可信域名条目,移除不再需要的通配符

2. 文章内容未做 HTML 消毒

Markdown 预览与「发布时提交的 HTML」都直接使用渲染结果,未过滤。而文章可以从任意 URL 导入,该 HTML 不仅渲染在扩展页面,还会被注入到 dongchedi / sohu 等平台的编辑器页面。

  • 修复:接入 DOMPurify,移除 <script>、<iframe>、on* 事件处理器、javascript: 链接,并额外禁止表单控件
  • 保留文章排版所需的标签与内联样式,导入文章的排版保真度不受影响
  • 代价:入口包 +28 KB

🛠 工程质量

  • 引入 vitest,新增 35 个单元测试(域名匹配 15 / HTML 消毒 20),并接入 CI —— 这是本项目第一次有自动化测试
  • 修好了 husky 钩子:此前 .husky/ 下只有 husky 内部目录,导致 lint-staged 与 commitlint 从未真正运行过
  • 补齐英文语言包缺失的 3 个条目(此前英文界面会显示原始 key 名)
  • 新增 OPTIMIZATION.md:完整的项目优化审计,含实测证据、优先级与执行顺序

📦 安装

下载 pupu-v0.2.6.crx,拖进 chrome://extensions(Edge 为 edge://extensions,需开启「开发者模式」)。已装旧版的用户直接安装即可覆盖更新。

扩展 ID 保持 nffpajdealkjpdmjjboneelajanbboig 不变(沿用同一签名密钥),因此升级不会丢失已保存的账号缓存与设置。

更完整的安装与使用说明见文档站:https://luskyle.github.io/pupu/guide.html

️ 已知待办

  • 动态内容在 maimai / weixinchannel 两个平台仍存在未转义的 innerHTML 拼接(会导致含 < > 的文本被吞,属 self-XSS 级别),已记录在 OPTIMIZATION.md 的 P1-7,下个版本处理
  • 依旧需要「开发者模式」才能安装:这是不经过应用商店的浏览器限制

⚠️ 本项目为个人学习 / 交流项目,请遵守各平台的使用规范与当地法律法规。