Coverage for /var/srv/projects/api.amasfac.comuna18.com/tmp/venv/lib/python3.9/site-packages/defusedxml/__init__.py: 27%
24 statements
« prev ^ index » next coverage.py v6.4.4, created at 2023-07-17 14:22 -0600
« prev ^ index » next coverage.py v6.4.4, created at 2023-07-17 14:22 -0600
1# defusedxml
2#
3# Copyright (c) 2013 by Christian Heimes <christian@python.org>
4# Licensed to PSF under a Contributor Agreement.
5# See https://www.python.org/psf/license for licensing details.
6"""Defuse XML bomb denial of service vulnerabilities
7"""
8from __future__ import print_function, absolute_import
10import warnings
12from .common import (
13 DefusedXmlException,
14 DTDForbidden,
15 EntitiesForbidden,
16 ExternalReferenceForbidden,
17 NotSupportedError,
18 _apply_defusing,
19)
22def defuse_stdlib():
23 """Monkey patch and defuse all stdlib packages
25 :warning: The monkey patch is an EXPERIMETNAL feature.
26 """
27 defused = {}
29 with warnings.catch_warnings():
30 from . import cElementTree
31 from . import ElementTree
32 from . import minidom
33 from . import pulldom
34 from . import sax
35 from . import expatbuilder
36 from . import expatreader
37 from . import xmlrpc
39 xmlrpc.monkey_patch()
40 defused[xmlrpc] = None
42 defused_mods = [
43 cElementTree,
44 ElementTree,
45 minidom,
46 pulldom,
47 sax,
48 expatbuilder,
49 expatreader,
50 ]
52 for defused_mod in defused_mods:
53 stdlib_mod = _apply_defusing(defused_mod)
54 defused[defused_mod] = stdlib_mod
56 return defused
59__version__ = "0.7.1"
61__all__ = [
62 "DefusedXmlException",
63 "DTDForbidden",
64 "EntitiesForbidden",
65 "ExternalReferenceForbidden",
66 "NotSupportedError",
67]