我应该清理降价吗?

时间:2009-08-12 14:45:30

标签: html validation markdown wmd

对于我的帖子实体,我将HTML和MARKDOWN存储在数据库中(HTML从MARKDOWN转换)。 HTML用于在页面上呈现,而MARKDOWN用于编辑功能(使用WMD)。我在存储到db之前清理HTML。问题是:我是否应该对降价进行消毒?或者如果我只将它传递给wmd-editor那么它是xss安全的吗?

3 个答案:

答案 0 :(得分:13)

Markdown可以包含任意HTML;这是明确允许的。因此,在发送给Web客户端之前,您应该对其进行清理,或者至少清理将其转换为HTML的结果。

我记得早期使用SO的一个漏洞就是你可以把JS内容放在Markdown中,而编辑你文章的人会在预览中触发这些脚本。我不知道这是否已修复。

答案 1 :(得分:3)

我注意到你在存储到db之前“清理HTML”并在下一句中谈到xss-safe。这些是输入验证的两个不同方面,你不应该混淆它们,并在你的设计中解决这两个问题:

  • 您应该安全地将任何用户输入插入数据库,即确保输入被正确转义(mysql_real_escape_string,存储过程,ORM库等)

  • 您应该安全地输出到HTML / JS(包括输入到WMD),删除或转义任何可能变成XSS漏洞和其他不愉快的序列。

关于这个问题,我同意克里斯 - 由于Markdown可以包含HTML,因此必须对其进行消毒。

答案 2 :(得分:0)

只是补充:
This question来自使用WMD