我应该清理降价吗?
Posted
技术标签:
【中文标题】我应该清理降价吗?【英文标题】:Should i sanitize markdown? 【发布时间】:2010-11-18 23:52:03 【问题描述】:对于我的帖子实体,我将 html 和 MARKDOWN 都存储在数据库中(HTML 是从 MARKDOWN 转换而来的)。 HTML 用于在页面上呈现,MARKDOWN 用于编辑能力(使用 WMD)。我在存储到数据库之前对 HTML 进行了清理。问题是:我也应该清理降价吗?或者如果我只将它传递给 wmd-editor 它是 xss 安全的?
【问题讨论】:
【参考方案1】:Markdown 可以包含任意 HTML;这是明确允许的。因此,在发送到 Web 客户端之前,您也应该对其进行清理,或者至少清理将其转换为 HTML 的结果。
我记得早期 SO 的一个可能的漏洞是你可以将 JS 内容放在 Markdown 中,而编辑你文章的人会在预览中触发这些脚本。我不知道这是否已经解决了。
【讨论】:
【参考方案2】:我注意到您“在存储到 db 之前清理 HTML”并在下一句中谈到 xss-safe。这是输入验证的两个不同方面,您不应该混淆它们,并在您的设计中解决这两个方面:
您应该安全地将任何用户输入插入数据库,即确保输入正确转义(mysql_real_escape_string、存储过程、ORM 库等)
您应该安全地输出到 HTML / JS(包括输入到 WMD),删除或转义任何可能变成 XSS 漏洞利用和其他不愉快的序列。
关于这个问题,我同意 Chris - 因为 Markdown 可以包含 HTML,所以必须对其进行清理。
【讨论】:
【参考方案3】:只是一个补充:This question 来自使用 WMD
【讨论】:
以上是关于我应该清理降价吗?的主要内容,如果未能解决你的问题,请参考以下文章