注意:2026-06-05:Bleach 已不再维护。未来将不会发布任何版本,包括安全问题的修复。
参见 Issue:<https://github.com/mozilla/bleach/issues/698>__
Bleach 是一个基于允许列表的 HTML 清洗库,用于转义或去除标记和属性。
Bleach 还可以安全地将文本转换为链接,应用 Django 的 urlize 过滤器无法处理的过滤,并可选地设置 rel 属性,即使文本中已存在链接也是如此。
Bleach 旨在清洗来自不可信来源的文本。如果您发现自己煞费苦心地让网站管理员做很多事情,那么您可能已经超出了使用场景。要么信任这些用户,要么不要。
由于它依赖于 html5lib_,Bleach 在处理怪异、古怪的 HTML 片段方面与现代浏览器一样出色。而且,任何 Bleach 的方法都会修复不平衡或嵌套错误的标签。
GitHub_ 上的版本是最新的,并包含最新的错误修复。您可以在 ReadTheDocs_ 上找到完整的文档。
:代码: https://github.com/mozilla/bleach :文档: https://bleach.readthedocs.io/ :问题追踪: https://github.com/mozilla/bleach/issues :许可证: Apache License v2;请参见 LICENSE 文件
对于常规漏洞,请在我们的 问题追踪器 <https://github.com/mozilla/bleach/issues>_ 中报告。
如果您认为自己发现了安全漏洞,请在我们的 安全漏洞报告系统 <https://bugzilla.mozilla.org/enter_bug.cgi?assigned_to=nobody%40mozilla.org&product=Webtools&component=Bleach-security&groups=webtools-security>_ 中提交安全漏洞报告,或发送电子邮件至 security AT mozilla DOT org。
有关安全相关漏洞披露的更多信息以及用于发送加密邮件或验证来自该地址的回复的 PGP 密钥,请阅读我们的 wiki 页面:
<https://www.mozilla.org/en-US/security/#For_Developers>_。
Bleach 是一个注重安全的库。
我们有一套负责任的安全漏洞报告流程。如果您报告安全问题,请使用该流程。
安全问题会私下修复。在我们完成修复后,我们会发布版本。
对于每次发布,我们会在 CHANGES 文件的 Security issues 部分注明已修复的安全问题。我们会包含相关的 CVE 链接。
Bleach 可在 PyPI_ 上获取,因此您可以使用 pip 安装它:::
$ pip install bleach
.. warning::
在进行任何升级之前,请阅读 Bleach Changes <https://bleach.readthedocs.io/en/latest/changes.html>_,了解向后不兼容的更改、新版本等信息。
Bleach 遵循 semver 2_ 版本控制。内置库不会在补丁版本中更改。
使用 Bleach 的最简单方式如下:
.. code-block:: python
>>> import bleach
>>> bleach.clean('an <script>evil()</script> example')
u'an <script>evil()</script> example'
>>> bleach.linkify('an http://example.com url')
u'an <a href="http://example.com" rel="nofollow">http://example.com</a> url'
本项目及代码仓库受 Mozilla 的行为准则和礼仪指南约束。更多详情请参阅 CODE_OF_CONDUCT.md </CODE_OF_CONDUCT.md>_
.. _html5lib: https://github.com/html5lib/html5lib-python .. _GitHub: https://github.com/mozilla/bleach .. _ReadTheDocs: https://bleach.readthedocs.io/ .. _PyPI: https://pypi.org/project/bleach/ .. _semver 2: https://semver.org/