
< 0.2.1
0.2.1
prosemirror_to_html gem 存在一个跨站脚本(XSS)漏洞,攻击者可通过恶意 HTML 属性值进行攻击。虽然标签内容被正确转义,但属性值未经过转义,这允许攻击者注入任意 JavaScript 代码。
受影响的用户包括:
攻击向量包括:
javascript: 协议的 href 属性:<a href="javascript:alert(document.cookie)">目前修复工作正在进行中。一旦发布,用户应升级到 0.2.1 或更高版本。该补丁使用 CGI.escapeHTML 对所有 HTML 属性值进行转义,以防止注入攻击。
在提供修复版本之前,用户可以实施以下一种或多种缓解措施:
净化输出:将 HTML 输出通过净化库(如
Sanitize 或 Loofah)进行处理:
html = ProsemirrorToHtml.render(document)
safe_html = Sanitize.fragment(html, Sanitize::Config::RELAXED)实施内容安全策略 (CSP):添加严格的 CSP 标头以防止内联 JavaScript 执行:
Content-Security-Policy: default-src 'self'; script-src 'self'输入验证:如果可能,在转换之前验证并清理 ProseMirror 文档,以防止恶意内容进入系统。
源代码项目地址:https://github.com/etaminstudio/prosemirror_to_html