Python-Markdown包含诸如转义原始HTML的功能,这些功能显然是为了使其在不受信任的输入上安全,并且一般来说Markdown通常用于呈现用户输入,例如就在SO上.
但这种实施真的值得信赖吗?有没有人在这里研究它来决定在任意输入上运行是否安全?
我看到在Django XSS安全 和安全Python Markdown库中有Markdown,但是'安全'模式真的安全吗?
如果您正确使用它,Python Markdown库似乎是安全的.有关如何安全使用它的详细信息,请参阅链接,但简短版本是:使用最新版本,设置safe_mode
和设置非常重要enable_attributes=False
.
更新:safe_mode
由于存在安全问题,现在应该被弃用.请参阅https://pythonhosted.org/Markdown/reference.html#safe_mode.而是使用单独的HTML清理程序,例如HTML Purifier.