Python-Markdown包括一些功能,比如对原始超文本标记语言进行转义,显然是为了在不受信任的输入上保持安全,一般来说,Markdown通常用于呈现用户输入,比如就在这里等等。
但是这个实现真的值得信任吗?这里有没有人研究过它,决定在任意输入上运行是安全的?
我知道有Markdown in Django XSS safe和Secure Python Markdown Library,但是“安全”模式真的安全吗?
发布于 2012-05-07 05:40:34
据所有人所知,Python Markdown库似乎是安全的,if you use it properly。有关如何安全使用它的详细信息,请参阅链接,但简短的版本是:使用最新版本、设置safe_mode和设置enable_attributes=False非常重要。
更新:由于safe_mode的安全问题,它现在将被弃用。参见https://github.com/Python-Markdown/markdown/commit/7db56daedf8a6006222f55eeeab748e7789fba89。相反,可以使用单独的HTML消毒器,例如HTML Purifier。
发布于 2019-11-15 08:32:15
您可以使用bleach
import bleach
text = "<a href='https://example.com'>Example</a><script>alert('message');</script>"
sanitized_text = bleach.clean(text,
tags=['p','a','code','pre','blockquote'],
attributes={'code': ['class'],'a': ['href']}
)请阅读documentation了解更多信息。
https://stackoverflow.com/questions/8409284
复制相似问题