Python-Markdown包含转义原始HTML的功能,这些功能显然是为了使其在不可信输入中安全,并且一般而言,Markdown通常用于呈现用户输入,例如SO。python-markdown在不受信任的输入上安全吗?
但是这个实现真的值得信赖吗?有没有人在这里研究过它,以确定在任意输入上运行是安全的?
我看到有例如Markdown in Django XSS safe和Secure Python Markdown Library但是'安全'模式真的很安全吗?
Python-Markdown包含转义原始HTML的功能,这些功能显然是为了使其在不可信输入中安全,并且一般而言,Markdown通常用于呈现用户输入,例如SO。python-markdown在不受信任的输入上安全吗?
但是这个实现真的值得信赖吗?有没有人在这里研究过它,以确定在任意输入上运行是安全的?
我看到有例如Markdown in Django XSS safe和Secure Python Markdown Library但是'安全'模式真的很安全吗?
就任何人都知道的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。
safe_mode已被弃用https://pythonhosted.org/Markdown/reference.html#safe_mode –
@RichardJones,感谢您的更新!我已经更新了我的答案。 –
你有什么理由相信它不是? Django中的安全模式应该可以正常工作,因为它是一个相当成熟的框架,很多人都使用它。如果有任何明显的安全风险,现在人们会发现它们。 – Codahk
它很安全。但它是否“非常安全”取决于您对“非常安全”的定义 –