| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294 |
- Metadata-Version: 2.4
- Name: bleach
- Version: 6.3.0
- Summary: An easy safelist-based HTML-sanitizing tool.
- Home-page: https://github.com/mozilla/bleach
- Maintainer: Will Kahn-Greene
- Maintainer-email: willkg@mozilla.com
- License: Apache Software License
- Classifier: Development Status :: 5 - Production/Stable
- Classifier: Environment :: Web Environment
- Classifier: Intended Audience :: Developers
- Classifier: Operating System :: OS Independent
- Classifier: Programming Language :: Python
- Classifier: Programming Language :: Python :: 3 :: Only
- Classifier: Programming Language :: Python :: 3
- Classifier: Programming Language :: Python :: 3.10
- Classifier: Programming Language :: Python :: 3.11
- Classifier: Programming Language :: Python :: 3.12
- Classifier: Programming Language :: Python :: 3.13
- Classifier: Programming Language :: Python :: 3.14
- Classifier: Programming Language :: Python :: Implementation :: CPython
- Classifier: Programming Language :: Python :: Implementation :: PyPy
- Classifier: Topic :: Software Development :: Libraries :: Python Modules
- Requires-Python: >=3.10
- Description-Content-Type: text/x-rst
- License-File: LICENSE
- License-File: bleach/_vendor/html5lib-1.1.dist-info/LICENSE
- Requires-Dist: webencodings
- Provides-Extra: css
- Requires-Dist: tinycss2<1.5,>=1.1.0; extra == "css"
- Dynamic: classifier
- Dynamic: description
- Dynamic: description-content-type
- Dynamic: home-page
- Dynamic: license
- Dynamic: license-file
- Dynamic: maintainer
- Dynamic: maintainer-email
- Dynamic: provides-extra
- Dynamic: requires-dist
- Dynamic: requires-python
- Dynamic: summary
- ======
- Bleach
- ======
- .. image:: https://github.com/mozilla/bleach/workflows/Test/badge.svg
- :target: https://github.com/mozilla/bleach/actions?query=workflow%3ATest
- .. image:: https://github.com/mozilla/bleach/workflows/Lint/badge.svg
- :target: https://github.com/mozilla/bleach/actions?query=workflow%3ALint
- .. image:: https://badge.fury.io/py/bleach.svg
- :target: http://badge.fury.io/py/bleach
- **NOTE: 2023-01-23: Bleach is deprecated.** See issue:
- `<https://github.com/mozilla/bleach/issues/698>`__
- Bleach is an allowed-list-based HTML sanitizing library that escapes or strips
- markup and attributes.
- Bleach can also linkify text safely, applying filters that Django's ``urlize``
- filter cannot, and optionally setting ``rel`` attributes, even on links already
- in the text.
- Bleach is intended for sanitizing text from *untrusted* sources. If you find
- yourself jumping through hoops to allow your site administrators to do lots of
- things, you're probably outside the use cases. Either trust those users, or
- don't.
- Because it relies on html5lib_, Bleach is as good as modern browsers at dealing
- with weird, quirky HTML fragments. And *any* of Bleach's methods will fix
- unbalanced or mis-nested tags.
- The version on GitHub_ is the most up-to-date and contains the latest bug
- fixes. You can find full documentation on `ReadTheDocs`_.
- :Code: https://github.com/mozilla/bleach
- :Documentation: https://bleach.readthedocs.io/
- :Issue tracker: https://github.com/mozilla/bleach/issues
- :License: Apache License v2; see LICENSE file
- Reporting Bugs
- ==============
- For regular bugs, please report them `in our issue tracker
- <https://github.com/mozilla/bleach/issues>`_.
- If you believe that you've found a security vulnerability, please `file a secure
- bug report in our bug tracker
- <https://bugzilla.mozilla.org/enter_bug.cgi?assigned_to=nobody%40mozilla.org&product=Webtools&component=Bleach-security&groups=webtools-security>`_
- or send an email to *security AT mozilla DOT org*.
- For more information on security-related bug disclosure and the PGP key to use
- for sending encrypted mail or to verify responses received from that address,
- please read our wiki page at
- `<https://www.mozilla.org/en-US/security/#For_Developers>`_.
- Security
- ========
- Bleach is a security-focused library.
- We have a responsible security vulnerability reporting process. Please use
- that if you're reporting a security issue.
- Security issues are fixed in private. After we land such a fix, we'll do a
- release.
- For every release, we mark security issues we've fixed in the ``CHANGES`` in
- the **Security issues** section. We include any relevant CVE links.
- Installing Bleach
- =================
- Bleach is available on PyPI_, so you can install it with ``pip``::
- $ pip install bleach
- Upgrading Bleach
- ================
- .. warning::
- Before doing any upgrades, read through `Bleach Changes
- <https://bleach.readthedocs.io/en/latest/changes.html>`_ for backwards
- incompatible changes, newer versions, etc.
- Bleach follows `semver 2`_ versioning. Vendored libraries will not
- be changed in patch releases.
- Basic use
- =========
- The simplest way to use Bleach is:
- .. 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'
- Code of Conduct
- ===============
- This project and repository is governed by Mozilla's code of conduct and
- etiquette guidelines. For more details please see the `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/
- Bleach changes
- ==============
- Version 6.3.0 (October 27th, 2025)
- ----------------------------------
- **Backwards incompatible changes**
- * Dropped support for Python 3.9. (#756)
- **Security fixes**
- None
- **Bug fixes**
- * Add support for Python 3.14. (#758)
- * Fix wbr handling. (#488)
- Version 6.2.0 (October 29th, 2024)
- ----------------------------------
- **Backwards incompatible changes**
- * Dropped support for Python 3.8. (#737)
- **Security fixes**
- None
- **Bug fixes**
- * Add support for Python 3.13. (#736)
- * Remove six depdenncy. (#618)
- * Update known-good versions for tinycss2. (#732)
- * Fix additional < followed by characters and EOF issues. (#728)
- Version 6.1.0 (October 6th, 2023)
- ---------------------------------
- **Backwards incompatible changes**
- * Dropped support for Python 3.7. (#709)
- **Security fixes**
- None
- **Bug fixes**
- * Add support for Python 3.12. (#710)
- * Fix linkify with arrays in querystring (#436)
- * Handle more cases with < followed by character data (#705)
- * Fix entities inside a tags in linkification (#704)
- * Update cap for tinycss2 to <1.3 (#702)
- * Updated Sphinx requirement
- * Add dependabot for github actions and update github actions
- Version 6.0.0 (January 23rd, 2023)
- ----------------------------------
- **Backwards incompatible changes**
- * ``bleach.clean``, ``bleach.sanitizer.Cleaner``,
- ``bleach.html5lib_shim.BleachHTMLParser``: the ``tags`` and ``protocols``
- arguments were changed from lists to sets.
- Old pre-6.0.0:
- .. code-block:: python
- bleach.clean(
- "some text",
- tags=["a", "p", "img"],
- # ^ ^ list
- protocols=["http", "https"],
- # ^ ^ list
- )
- New 6.0.0 and later:
- .. code-block:: python
- bleach.clean(
- "some text",
- tags={"a", "p", "img"},
- # ^ ^ set
- protocols={"http", "https"},
- # ^ ^ set
- )
- * ``bleach.linkify``, ``bleach.linkifier.Linker``: the ``skip_tags`` and
- ``recognized_tags`` arguments were changed from lists to sets.
- Old pre-6.0.0:
- .. code-block:: python
- bleach.linkify(
- "some text",
- skip_tags=["pre"],
- # ^ ^ list
- )
- linker = Linker(
- skip_tags=["pre"],
- # ^ ^ list
- recognized_tags=html5lib_shim.HTML_TAGS + ["custom-element"],
- # ^ ^ ^ list
- # |
- # | list concatenation
- )
- New 6.0.0 and later:
- .. code-block:: python
- bleach.linkify(
- "some text",
- skip_tags={"pre"},
- # ^ ^ set
- )
- linker = Linker(
- skip_tags={"pre"},
- # ^ ^ set
- recognized_tags=html5lib_shim.HTML_TAGS | {"custom-element"},
- # ^ ^ ^ set
- # |
- # | union operator
- )
- * ``bleach.sanitizer.BleachSanitizerFilter``: ``strip_allowed_elements`` is now
- ``strip_allowed_tags``. We now use "tags" everywhere rather than a mishmash
- of "tags" in some places and "elements" in others.
- **Security fixes**
- None
- **Bug fixes**
- * Add support for Python 3.11. (#675)
- * Fix API weirness in ``BleachSanitizerFilter``. (#649)
- We're using "tags" instead of "elements" everywhere--no more weird
- overloading of "elements" anymore.
- Also, it no longer calls the superclass constructor.
- * Add warning when ``css_sanitizer`` isn't set, but the ``style``
- attribute is allowed. (#676)
- * Fix linkify handling of character entities. (#501)
- * Rework dev dependencies to use ``requirements-dev.txt`` and
- ``requirements-flake8.txt`` instead of extras.
- * Fix project infrastructure to be tox-based so it's easier to have CI
- run the same things we're running in development and with flake8
- in an isolated environment.
- * Update action versions in CI.
- * Switch to f-strings where possible. Make tests parametrized to be
- easier to read/maintain.
- Version 5.0.1 (June 27th, 2022)
- -------------------------------
- **Security fixes**
- None
- **Bug fixes**
- * Add missing comma to tinycss2 require. Thank you, @shadchin!
- * Add url parse tests based on wpt url tests. (#688)
- * Support scheme-less urls if "https" is in allow list. (#662)
- * Handle escaping ``<`` in edge cases where it doesn't start a tag. (#544)
- * Fix reference warnings in docs. (#660)
- * Correctly urlencode email address parts. Thank you, @larseggert! (#659)
- Version 5.0.0 (April 7th, 2022)
- -------------------------------
- **Backwards incompatible changes**
- * ``clean`` and ``linkify`` now preserve the order of HTML attributes. Thank
- you, @askoretskly! (#566)
- * Drop support for Python 3.6. Thank you, @hugovk! (#629)
- * CSS sanitization in style tags is completely different now. If you're using
- Bleach ``clean`` to sanitize css in style tags, you'll need to update your
- code and you'll need to install the ``css`` extras::
- pip install 'bleach[css]'
- See `the documentation on sanitizing CSS for how to do it
- <https://bleach.readthedocs.io/en/latest/clean.html#sanitizing-css>`_. (#633)
- **Security fixes**
- None
- **Bug fixes**
- * Rework dev dependencies. We no longer have
- ``requirements-dev.in``/``requirements-dev.txt``. Instead, we're using
- ``dev`` extras.
- See `development docs <https://bleach.readthedocs.io/en/latest/dev.html>`_
- for more details. (#620)
- * Add newline when dropping block-level tags. Thank you, @jvanasco! (#369)
- Version 4.1.0 (August 25th, 2021)
- ---------------------------------
- **Features**
- * Python 3.9 support
- **Security fixes**
- None
- **Bug fixes**
- * Update sanitizer clean to use vendored 3.6.14 stdlib urllib.parse to
- fix test failures on Python 3.9. (#536)
- Version 4.0.0 (August 3rd, 2021)
- --------------------------------
- **Backwards incompatible changes**
- * Drop support for unsupported Python versions <3.6. (#520)
- **Security fixes**
- None
- **Features**
- * fix attribute name in the linkify docs (thanks @CheesyFeet!)
- Version 3.3.1 (July 14th, 2021)
- -------------------------------
- **Security fixes**
- None
- **Features**
- * add more tests for CVE-2021-23980 / GHSA-vv2x-vrpj-qqpq
- * bump python version to 3.8 for tox doc, vendorverify, and lint targets
- * update bug report template tag
- * update vendorverify script to detect and fail when extra files are vendored
- * update release process docs to check vendorverify passes locally
- **Bug fixes**
- * remove extra vendored django present in the v3.3.0 whl (#595)
- * duplicate h1 header doc fix (thanks Nguyễn Gia Phong / @McSinyx!)
- Version 3.3.0 (February 1st, 2021)
- ----------------------------------
- **Backwards incompatible changes**
- * clean escapes HTML comments even when strip_comments=False
- **Security fixes**
- * Fix bug 1621692 / GHSA-m6xf-fq7q-8743. See the advisory for details.
- **Features**
- None
- **Bug fixes**
- None
- Version 3.2.3 (January 26th, 2021)
- ----------------------------------
- **Security fixes**
- None
- **Features**
- None
- **Bug fixes**
- * fix clean and linkify raising ValueErrors for certain inputs. Thank you @Google-Autofuzz.
- Version 3.2.2 (January 20th, 2021)
- ----------------------------------
- **Security fixes**
- None
- **Features**
- * Migrate CI to Github Actions. Thank you @hugovk.
- **Bug fixes**
- * fix linkify raising an IndexError on certain inputs. Thank you @Google-Autofuzz.
- Version 3.2.1 (September 18th, 2020)
- ------------------------------------
- **Security fixes**
- None
- **Features**
- None
- **Bug fixes**
- * change linkifier to add rel="nofollow" as documented. Thank you @mitar.
- * suppress html5lib sanitizer DeprecationWarnings (#557)
- Version 3.2.0 (September 16th, 2020)
- ------------------------------------
- **Security fixes**
- None
- **Features**
- None
- **Bug fixes**
- * ``html5lib`` dependency to version 1.1.0. Thank you Sam Sneddon.
- * update tests_website terminology. Thank you Thomas Grainger.
- Version 3.1.5 (April 29th, 2020)
- --------------------------------
- **Security fixes**
- None
- **Features**
- None
- **Bug fixes**
- * replace missing ``setuptools`` dependency with ``packaging``. Thank you Benjamin Peterson.
- Version 3.1.4 (March 24th, 2020)
- --------------------------------
- **Security fixes**
- * ``bleach.clean`` behavior parsing style attributes could result in a
- regular expression denial of service (ReDoS).
- Calls to ``bleach.clean`` with an allowed tag with an allowed
- ``style`` attribute were vulnerable to ReDoS. For example,
- ``bleach.clean(..., attributes={'a': ['style']})``.
- This issue was confirmed in Bleach versions v3.1.3, v3.1.2, v3.1.1,
- v3.1.0, v3.0.0, v2.1.4, and v2.1.3. Earlier versions used a similar
- regular expression and should be considered vulnerable too.
- Anyone using Bleach <=v3.1.3 is encouraged to upgrade.
- https://bugzilla.mozilla.org/show_bug.cgi?id=1623633
- **Backwards incompatible changes**
- * Style attributes with dashes, or single or double quoted values are
- cleaned instead of passed through.
- **Features**
- None
- **Bug fixes**
- None
- Version 3.1.3 (March 17th, 2020)
- --------------------------------
- **Security fixes**
- None
- **Backwards incompatible changes**
- * Drop support for Python 3.4. Thank you, @hugovk!
- * Drop deprecated ``setup.py test`` support. Thank you, @jdufresne! (#507)
- **Features**
- * Add support for Python 3.8. Thank you, @jdufresne!
- * Add support for PyPy 7. Thank you, @hugovk!
- * Add pypy3 testing to tox and travis. Thank you, @jdufresne!
- **Bug fixes**
- * Add relative link to code of conduct. (#442)
- * Fix typo: curren -> current in tests/test_clean.py Thank you, timgates42! (#504)
- * Fix handling of non-ascii style attributes. Thank you, @sekineh! (#426)
- * Simplify tox configuration. Thank you, @jdufresne!
- * Make documentation reproducible. Thank you, @lamby!
- * Fix typos in code comments. Thank you, @zborboa-g!
- * Fix exception value testing. Thank you, @mastizada!
- * Fix parser-tags NoneType exception. Thank you, @bope!
- * Improve TLD support in linkify. Thank you, @pc-coholic!
- Version 3.1.2 (March 11th, 2020)
- --------------------------------
- **Security fixes**
- * ``bleach.clean`` behavior parsing embedded MathML and SVG content
- with RCDATA tags did not match browser behavior and could result in
- a mutation XSS.
- Calls to ``bleach.clean`` with ``strip=False`` and ``math`` or
- ``svg`` tags and one or more of the RCDATA tags ``script``,
- ``noscript``, ``style``, ``noframes``, ``iframe``, ``noembed``, or
- ``xmp`` in the allowed tags whitelist were vulnerable to a mutation
- XSS.
- This security issue was confirmed in Bleach version v3.1.1. Earlier
- versions are likely affected too.
- Anyone using Bleach <=v3.1.1 is encouraged to upgrade.
- https://bugzilla.mozilla.org/show_bug.cgi?id=1621692
- **Backwards incompatible changes**
- None
- **Features**
- None
- **Bug fixes**
- None
- Version 3.1.1 (February 13th, 2020)
- -----------------------------------
- **Security fixes**
- * ``bleach.clean`` behavior parsing ``noscript`` tags did not match
- browser behavior.
- Calls to ``bleach.clean`` allowing ``noscript`` and one or more of
- the raw text tags (``title``, ``textarea``, ``script``, ``style``,
- ``noembed``, ``noframes``, ``iframe``, and ``xmp``) were vulnerable
- to a mutation XSS.
- This security issue was confirmed in Bleach versions v2.1.4, v3.0.2,
- and v3.1.0. Earlier versions are probably affected too.
- Anyone using Bleach <=v3.1.0 is highly encouraged to upgrade.
- https://bugzilla.mozilla.org/show_bug.cgi?id=1615315
- **Backwards incompatible changes**
- None
- **Features**
- None
- **Bug fixes**
- None
- Version 3.1.0 (January 9th, 2019)
- ---------------------------------
- **Security fixes**
- None
- **Backwards incompatible changes**
- None
- **Features**
- * Add ``recognized_tags`` argument to the linkify ``Linker`` class. This
- fixes issues when linkifying on its own and having some tags get escaped.
- It defaults to a list of HTML5 tags. Thank you, Chad Birch! (#409)
- **Bug fixes**
- * Add ``six>=1.9`` to requirements. Thank you, Dave Shawley (#416)
- * Fix cases where attribute names could have invalid characters in them.
- (#419)
- * Fix problems with ``LinkifyFilter`` not being able to match links
- across ``&``. (#422)
- * Fix ``InputStreamWithMemory`` when the ``BleachHTMLParser`` is
- parsing ``meta`` tags. (#431)
- * Fix doctests. (#357)
- Version 3.0.2 (October 11th, 2018)
- ----------------------------------
- **Security fixes**
- None
- **Backwards incompatible changes**
- None
- **Features**
- None
- **Bug fixes**
- * Merge ``Characters`` tokens after sanitizing them. This fixes issues in the
- ``LinkifyFilter`` where it was only linkifying parts of urls. (#374)
- Version 3.0.1 (October 9th, 2018)
- ---------------------------------
- **Security fixes**
- None
- **Backwards incompatible changes**
- None
- **Features**
- * Support Python 3.7. It supported Python 3.7 just fine, but we added 3.7 to
- the list of Python environments we test so this is now officially supported.
- (#377)
- **Bug fixes**
- * Fix ``list`` object has no attribute ``lower`` in ``clean``. (#398)
- * Fix ``abbr`` getting escaped in ``linkify``. (#400)
- Version 3.0.0 (October 3rd, 2018)
- ---------------------------------
- **Security fixes**
- None
- **Backwards incompatible changes**
- * A bunch of functions were moved from one module to another.
- These were moved from ``bleach.sanitizer`` to ``bleach.html5lib_shim``:
- * ``convert_entity``
- * ``convert_entities``
- * ``match_entity``
- * ``next_possible_entity``
- * ``BleachHTMLSerializer``
- * ``BleachHTMLTokenizer``
- * ``BleachHTMLParser``
- These functions and classes weren't documented and aren't part of the
- public API, but people read code and might be using them so we're
- considering it an incompatible API change.
- If you're using them, you'll need to update your code.
- **Features**
- * Bleach no longer depends on html5lib. html5lib==1.0.1 is now vendored into
- Bleach. You can remove it from your requirements file if none of your other
- requirements require html5lib.
- This means Bleach will now work fine with other libraries that depend on
- html5lib regardless of what version of html5lib they require. (#386)
- **Bug fixes**
- * Fixed tags getting added when using clean or linkify. This was a
- long-standing regression from the Bleach 2.0 rewrite. (#280, #392)
- * Fixed ``<isindex>`` getting replaced with a string. Now it gets escaped or
- stripped depending on whether it's in the allowed tags or not. (#279)
- Version 2.1.4 (August 16th, 2018)
- ---------------------------------
- **Security fixes**
- None
- **Backwards incompatible changes**
- * Dropped support for Python 3.3. (#328)
- **Features**
- None
- **Bug fixes**
- * Handle ambiguous ampersands in correctly. (#359)
- Version 2.1.3 (March 5th, 2018)
- -------------------------------
- **Security fixes**
- * Attributes that have URI values weren't properly sanitized if the
- values contained character entities. Using character entities, it
- was possible to construct a URI value with a scheme that was not
- allowed that would slide through unsanitized.
- This security issue was introduced in Bleach 2.1. Anyone using
- Bleach 2.1 is highly encouraged to upgrade.
- https://bugzilla.mozilla.org/show_bug.cgi?id=1442745
- **Backwards incompatible changes**
- None
- **Features**
- None
- **Bug fixes**
- * Fixed some other edge cases for attribute URI value sanitizing and
- improved testing of this code.
- Version 2.1.2 (December 7th, 2017)
- ----------------------------------
- **Security fixes**
- None
- **Backwards incompatible changes**
- None
- **Features**
- None
- **Bug fixes**
- * Support html5lib-python 1.0.1. (#337)
- * Add deprecation warning for supporting html5lib-python < 1.0.
- * Switch to semver.
- Version 2.1.1 (October 2nd, 2017)
- ---------------------------------
- **Security fixes**
- None
- **Backwards incompatible changes**
- None
- **Features**
- None
- **Bug fixes**
- * Fix ``setup.py`` opening files when ``LANG=``. (#324)
- Version 2.1 (September 28th, 2017)
- ----------------------------------
- **Security fixes**
- * Convert control characters (backspace particularly) to "?" preventing
- malicious copy-and-paste situations. (#298)
- See `<https://github.com/mozilla/bleach/issues/298>`_ for more details.
- This affects all previous versions of Bleach. Check the comments on that
- issue for ways to alleviate the issue if you can't upgrade to Bleach 2.1.
- **Backwards incompatible changes**
- * Redid versioning. ``bleach.VERSION`` is no longer available. Use the string
- version at ``bleach.__version__`` and parse it with
- ``pkg_resources.parse_version``. (#307)
- * clean, linkify: linkify and clean should only accept text types; thank you,
- Janusz! (#292)
- * clean, linkify: accept only unicode or utf-8-encoded str (#176)
- **Features**
- **Bug fixes**
- * ``bleach.clean()`` no longer unescapes entities including ones that are missing
- a ``;`` at the end which can happen in urls and other places. (#143)
- * linkify: fix http links inside of mailto links; thank you, sedrubal! (#300)
- * clarify security policy in docs (#303)
- * fix dependency specification for html5lib 1.0b8, 1.0b9, and 1.0b10; thank you,
- Zoltán! (#268)
- * add Bleach vs. html5lib comparison to README; thank you, Stu Cox! (#278)
- * fix KeyError exceptions on tags without href attr; thank you, Alex Defsen!
- (#273)
- * add test website and scripts to test ``bleach.clean()`` output in browser;
- thank you, Greg Guthe!
- Version 2.0 (March 8th, 2017)
- -----------------------------
- **Security fixes**
- * None
- **Backwards incompatible changes**
- * Removed support for Python 2.6. (#206)
- * Removed support for Python 3.2. (#224)
- * Bleach no longer supports html5lib < 0.99999999 (8 9s).
- This version is a rewrite to use the new sanitizing API since the old
- one was dropped in html5lib 0.99999999 (8 9s).
- If you're using 0.9999999 (7 9s) upgrade to 0.99999999 (8 9s) or higher.
- If you're using 1.0b8 (equivalent to 0.9999999 (7 9s)), upgrade to 1.0b9
- (equivalent to 0.99999999 (8 9s)) or higher.
- * ``bleach.clean`` and friends were rewritten
- ``clean`` was reimplemented as an html5lib filter and happens at a different
- step in the HTML parsing -> traversing -> serializing process. Because of
- that, there are some differences in clean's output as compared with previous
- versions.
- Amongst other things, this version will add end tags even if the tag in
- question is to be escaped.
- * ``bleach.clean`` and friends attribute callables now take three arguments:
- tag, attribute name and attribute value. Previously they only took attribute
- name and attribute value.
- All attribute callables will need to be updated.
- * ``bleach.linkify`` was rewritten
- ``linkify`` was reimplemented as an html5lib Filter. As such, it no longer
- accepts a ``tokenizer`` argument.
- The callback functions for adjusting link attributes now takes a namespaced
- attribute.
- Previously you'd do something like this::
- def check_protocol(attrs, is_new):
- if not attrs.get('href', '').startswith('http:', 'https:')):
- return None
- return attrs
- Now it's more like this::
- def check_protocol(attrs, is_new):
- if not attrs.get((None, u'href'), u'').startswith(('http:', 'https:')):
- # ^^^^^^^^^^^^^^^
- return None
- return attrs
- Further, you need to make sure you're always using unicode values. If you
- don't then html5lib will raise an assertion error that the value is not
- unicode.
- All linkify filters will need to be updated.
- * ``bleach.linkify`` and friends had a ``skip_pre`` argument--that's been
- replaced with a more general ``skip_tags`` argument.
- Before, you might do::
- bleach.linkify(some_text, skip_pre=True)
- The equivalent with Bleach 2.0 is::
- bleach.linkify(some_text, skip_tags=['pre'])
- You can skip other tags, too, like ``style`` or ``script`` or other places
- where you don't want linkification happening.
- All uses of linkify that use ``skip_pre`` will need to be updated.
- **Changes**
- * Supports Python 3.6.
- * Supports html5lib >= 0.99999999 (8 9s).
- * There's a ``bleach.sanitizer.Cleaner`` class that you can instantiate with your
- favorite clean settings for easy reuse.
- * There's a ``bleach.linkifier.Linker`` class that you can instantiate with your
- favorite linkify settings for easy reuse.
- * There's a ``bleach.linkifier.LinkifyFilter`` which is an htm5lib filter that
- you can pass as a filter to ``bleach.sanitizer.Cleaner`` allowing you to clean
- and linkify in one pass.
- * ``bleach.clean`` and friends can now take a callable as an attributes arg value.
- * Tons of bug fixes.
- * Cleaned up tests.
- * Documentation fixes.
- Version 1.5 (November 4th, 2016)
- --------------------------------
- **Security fixes**
- * None
- **Backwards incompatible changes**
- * clean: The list of ``ALLOWED_PROTOCOLS`` now defaults to http, https and
- mailto.
- Previously it was a long list of protocols something like ed2k, ftp, http,
- https, irc, mailto, news, gopher, nntp, telnet, webcal, xmpp, callto, feed,
- urn, aim, rsync, tag, ssh, sftp, rtsp, afs, data. (#149)
- **Changes**
- * clean: Added ``protocols`` to arguments list to let you override the list of
- allowed protocols. Thank you, Andreas Malecki! (#149)
- * linkify: Fix a bug involving periods at the end of an email address. Thank you,
- Lorenz Schori! (#219)
- * linkify: Fix linkification of non-ascii ports. Thank you Alexandre, Macabies!
- (#207)
- * linkify: Fix linkify inappropriately removing node tails when dropping nodes.
- (#132)
- * Fixed a test that failed periodically. (#161)
- * Switched from nose to py.test. (#204)
- * Add test matrix for all supported Python and html5lib versions. (#230)
- * Limit to html5lib ``>=0.999,!=0.9999,!=0.99999,<0.99999999`` because 0.9999
- and 0.99999 are busted.
- * Add support for ``python setup.py test``. (#97)
- Version 1.4.3 (May 23rd, 2016)
- ------------------------------
- **Security fixes**
- * None
- **Changes**
- * Limit to html5lib ``>=0.999,<0.99999999`` because of impending change to
- sanitizer api. #195
- Version 1.4.2 (September 11, 2015)
- ----------------------------------
- **Changes**
- * linkify: Fix hang in linkify with ``parse_email=True``. (#124)
- * linkify: Fix crash in linkify when removing a link that is a first-child. (#136)
- * Updated TLDs.
- * linkify: Don't remove exterior brackets when linkifying. (#146)
- Version 1.4.1 (December 15, 2014)
- ---------------------------------
- **Changes**
- * Consistent order of attributes in output.
- * Python 3.4 support.
- Version 1.4 (January 12, 2014)
- ------------------------------
- **Changes**
- * linkify: Update linkify to use etree type Treewalker instead of simpletree.
- * Updated html5lib to version ``>=0.999``.
- * Update all code to be compatible with Python 3 and 2 using six.
- * Switch to Apache License.
- Version 1.3
- -----------
- * Used by Python 3-only fork.
- Version 1.2.2 (May 18, 2013)
- ----------------------------
- * Pin html5lib to version 0.95 for now due to major API break.
- Version 1.2.1 (February 19, 2013)
- ---------------------------------
- * ``clean()`` no longer considers ``feed:`` an acceptable protocol due to
- inconsistencies in browser behavior.
- Version 1.2 (January 28, 2013)
- ------------------------------
- * ``linkify()`` has changed considerably. Many keyword arguments have been
- replaced with a single callbacks list. Please see the documentation for more
- information.
- * Bleach will no longer consider unacceptable protocols when linkifying.
- * ``linkify()`` now takes a tokenizer argument that allows it to skip
- sanitization.
- * ``delinkify()`` is gone.
- * Removed exception handling from ``_render``. ``clean()`` and ``linkify()`` may
- now throw.
- * ``linkify()`` correctly ignores case for protocols and domain names.
- * ``linkify()`` correctly handles markup within an <a> tag.
- Version 1.1.5
- -------------
- Version 1.1.4
- -------------
- Version 1.1.3 (July 10, 2012)
- -----------------------------
- * Fix parsing bare URLs when parse_email=True.
- Version 1.1.2 (June 1, 2012)
- ----------------------------
- * Fix hang in style attribute sanitizer. (#61)
- * Allow ``/`` in style attribute values.
- Version 1.1.1 (February 17, 2012)
- ---------------------------------
- * Fix tokenizer for html5lib 0.9.5.
- Version 1.1.0 (October 24, 2011)
- --------------------------------
- * ``linkify()`` now understands port numbers. (#38)
- * Documented character encoding behavior. (#41)
- * Add an optional target argument to ``linkify()``.
- * Add ``delinkify()`` method. (#45)
- * Support subdomain whitelist for ``delinkify()``. (#47, #48)
- Version 1.0.4 (September 2, 2011)
- ---------------------------------
- * Switch to SemVer git tags.
- * Make ``linkify()`` smarter about trailing punctuation. (#30)
- * Pass ``exc_info`` to logger during rendering issues.
- * Add wildcard key for attributes. (#19)
- * Make ``linkify()`` use the ``HTMLSanitizer`` tokenizer. (#36)
- * Fix URLs wrapped in parentheses. (#23)
- * Make ``linkify()`` UTF-8 safe. (#33)
- Version 1.0.3 (June 14, 2011)
- -----------------------------
- * ``linkify()`` works with 3rd level domains. (#24)
- * ``clean()`` supports vendor prefixes in style values. (#31, #32)
- * Fix ``linkify()`` email escaping.
- Version 1.0.2 (June 6, 2011)
- ----------------------------
- * ``linkify()`` supports email addresses.
- * ``clean()`` supports callables in attributes filter.
- Version 1.0.1 (April 12, 2011)
- ------------------------------
- * ``linkify()`` doesn't drop trailing slashes. (#21)
- * ``linkify()`` won't linkify 'libgl.so.1'. (#22)
|