2011-12-07 29 views
9

Python-Markdown包含转义原始HTML的功能,这些功能显然是为了使其在不可信输入中安全,并且一般而言,Markdown通常用于呈现用户输入,例如SO。python-markdown在不受信任的输入上安全吗?

但是这个实现真的值得信赖吗?有没有人在这里研究过它,以确定在任意输入上运行是安全的?

我看到有例如Markdown in Django XSS safeSecure Python Markdown Library但是'安全'模式真的很安全吗?

+1

你有什么理由相信它不是? Django中的安全模式应该可以正常工作,因为它是一个相当成熟的框架,很多人都使用它。如果有任何明显的安全风险,现在人们会发现它们。 – Codahk

+4

它很安全。但它是否“非常安全”取决于您对“非常安全”的定义 –

回答

5

就任何人都知道的Python Markdown库看来是安全的,if you use it properly。有关如何安全使用它的详细信息,请参阅链接,但简短版本为:使用最新版本设置safe_mode并设置enable_attributes=False非常重要。

更新:safe_mode现在将由于它的安全问题而被弃用。见https://pythonhosted.org/Markdown/reference.html#safe_mode。相反,请使用单独的HTML清理程序,例如HTML Purifier。

+0

safe_mode已被弃用https://pythonhosted.org/Markdown/reference.html#safe_mode –

+0

@RichardJones,感谢您的更新!我已经更新了我的答案。 –