我应该清理降价吗?

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

【讨论】:

以上是关于我应该清理降价吗?的主要内容,如果未能解决你的问题,请参考以下文章

我应该从 Windows 10 上的磁盘清理中清理“压缩您的操作系统驱动器”吗?

JBoss AS 7:如何清理 tmp?

需要OpenGL GPU内存清理吗?

在 AJAX 请求中清理 POST 数据[重复]

释放锁和清理的区别

在 Rails 中清理输入 XSS 和 HTML 输入