安全的 Python Markdown 库

发布于 2024-08-23 04:57:53 字数 1431 浏览 12 评论 0原文

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

夜深人未静 2024-08-30 04:57:53

reddit 现在使用折扣降价库

reddit uses the discount markdown library now.

美煞众生 2024-08-30 04:57:53

Python-Markdown - 或多或少的“标准” - 有一个“安全” mode' 功能可转义 html 标签。这应该足以对抗大多数 HTML 注入攻击。

Python-Markdown - the 'standard' one more or less - has a 'safe mode' feature that escapes html tags. That should be enough to counter most all HTML injection attacks.

轻拂→两袖风尘 2024-08-30 04:57:53

其他答案提到了 Python-Markdown 的安全模式,但现已弃用。 Python-Markdown 的作者曾被引用说:

“安全模式”是一个糟糕的名称选择,我们继续使用它来向后进行
可比性(旧代码仍然适用于我们的新版本)。到底是什么
这是一种无标记模式。换句话说,这只是禁止原始 html 的一种方法
而且确实不能保证安全。

他们现在建议使用 HTML 清理程序(如 Bleach)来清理 Markdown 输出。 mdx_bleach 是一个 Python-Markdown 扩展,它可以做到这一点。免责声明:我是此扩展的作者。

由于 Bleach 与浏览器一样使用 html5lib 来解析文档片段,因此对未知攻击具有极强的弹性,比基于正则表达式的清理程序要强得多。

The other answers mention Python-Markdown's safe mode but that is now deprecated. The authors of Python-Markdown have been quoted saying:

"safe-mode" was a poor name choice that we continue to use for backward
comparability (old code still works with our newer versions). What it really
is is a no-markup mode. In other words, it is just a way to disallow raw html
and really doesn't guarantee safety.

They now recommend using an HTML sanitizer like Bleach to sanitize the Markdown output. mdx_bleach is a Python-Markdown extension that does just that. Disclaimer: I'm the author of this extension.

Because it uses html5lib to parse document fragments the same way browsers do, Bleach is extremely resilient to unknown attacks, much more so than regular-expression-based sanitizers.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文