Skip to content

修复 EditorMD 对 Typecho 1.3 的兼容性并加固 Markdown 渲染 - #216

Merged
benzBrake merged 1 commit into
typecho-fans:masterfrom
NHPT:fix/editormd-typecho-1.3-security
Aug 16, 2026
Merged

修复 EditorMD 对 Typecho 1.3 的兼容性并加固 Markdown 渲染#216
benzBrake merged 1 commit into
typecho-fans:masterfrom
NHPT:fix/editormd-typecho-1.3-security

Conversation

@NHPT

@NHPT NHPT commented Aug 15, 2026

Copy link
Copy Markdown
Contributor

变更内容

  • 兼容 Typecho 1.2/1.3 的正文、摘要、Markdown 和 AutoP 插件契约,避免 1.3 下正文或摘要为空。
  • 对隐藏 Markdown 源码做 textarea 上下文编码,并正确保留 <!--more--> 摘要边界。
  • 固定引入 DOMPurify 3.4.13,对 marked 的最终 HTML 统一净化;后台和前台均采用 fail-closed 策略。
  • 防止 Editor.md 自动加载队列重新覆盖已净化的 marked,同时保留 CodeMirror、流程图等模块加载。
  • 修复现代 Chrome/Safari 粘贴上传失效及多文件异步结果错位。
  • 新文章粘贴上传后提交附件 CID,避免附件长期处于未归档状态。
  • 混合 Markdown/非 Markdown 文章列表根据实际容器决定是否加载前台解析资源。

安全说明

  • 后台预览和插件接管的前台解析不再允许 Markdown 原始 HTML;关闭前台接管时仍遵循 Typecho 自身行为。
  • 修复 script/svg/onerror、数学/流程图 fenced block、实体编码 javascript: URL 及 </textarea> 逃逸路径。
  • DOMPurify 3.4.13 文件 SHA-256:9ab3d44d73c3e3947f9ab72e0f0bc15c7f1931d60b365ba261fc85fe59013c56
  • 参考原插件未合并的 XSS 修复 add xss filter logic DT27/EditorMD#22,以及 XSS 漏洞 pandao/editor.md#1018、#1027。

测试

  • PHP 7.4、PHP 8.3 语法检查。
  • Typecho 1.2.1、1.3.0:插件激活、正文、摘要、<!--more-->、Markdown/AutoP 扩展钩子。
  • JavaScript:批量乱序上传、附件 CID、空剪贴板文件、非图片过滤、内联脚本语法与资源加载顺序。
  • 真实 Chrome:后台完整 Editor.md 自动加载、DOMPurify 缺失 fail-closed、前台 markdownToHTML、数学/流程图及 XSS 绕过载荷。
  • 最终通用代码审查和安全复审未发现 P0-P2 或可利用问题。

@benzBrake
benzBrake merged commit cae428f into typecho-fans:master Aug 16, 2026
@NHPT
NHPT deleted the fix/editormd-typecho-1.3-security branch August 21, 2026 07:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants