繁体   English   中英

python-markdown 在不受信任的输入上是否安全?

[英]Is python-markdown safe on untrusted input?

Python-Markdown包括转义原始 HTML 等功能,这些功能显然是为了在不受信任的输入上使其安全,一般来说,Markdown 通常用于呈现用户输入,例如在 SO 上。

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

我看到Django XSS 安全安全 Python Markdown 库中有例如Markdown但“安全”模式真的安全吗?

就任何人所知,Python Markdown 库似乎是安全的,如果您使用得当的话 有关如何安全使用它的详细信息,请参阅链接,但简短版本是:使用最新版本、设置safe_mode和设置enable_attributes=False

更新:由于存在安全问题, safe_mode现在已被弃用。 https://github.com/Python-Markdown/markdown/commit/7db56daedf8a6006222f55eeeab748e7789fba89 相反,请使用单独的 HTML 消毒剂,例如 HTML Purifier。

你可以用漂白剂

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']}
)

阅读文档了解更多信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM