python-markdown在不可信输入下安全吗?
Python-Markdown 这个工具有一些功能,比如可以处理原始的HTML代码,目的是为了让它在处理不可信的输入时更加安全。一般来说,Markdown常常用来显示用户输入的内容,比如在Stack Overflow上就是这样。
但是,这个实现真的可靠吗?有没有人仔细研究过,确认它在处理任意输入时是安全的?
我看到有一些讨论,比如 Django中的Markdown是否安全 和 安全的Python Markdown库,但是它的“安全”模式真的安全吗?
2 个回答
5
Python的Markdown库在大家看来是安全的,只要你用得当。具体怎么安全使用,可以查看这个链接,但简单来说:一定要使用最新版本,设置safe_mode
,并且把enable_attributes=False
。
更新一下:safe_mode
将要被淘汰,因为它存在安全问题。具体可以看这个链接:https://github.com/Python-Markdown/markdown/commit/7db56daedf8a6006222f55eeeab748e7789fba89。现在建议使用一个单独的HTML清理工具,比如HTML Purifier。