github.com/munnerz/test-infra@v0.0.0-20190108210205-ce3d181dc989/gubernator/third_party/defusedxml/__init__.py (about)

     1  # defusedxml
     2  #
     3  # Copyright (c) 2013 by Christian Heimes <christian@python.org>
     4  # Licensed to PSF under a Contributor Agreement.
     5  # See http://www.python.org/psf/license for licensing details.
     6  """Defuse XML bomb denial of service vulnerabilities
     7  """
     8  from __future__ import print_function, absolute_import
     9  
    10  from .common import (DefusedXmlException, DTDForbidden, EntitiesForbidden,
    11                       ExternalReferenceForbidden, NotSupportedError,
    12                       _apply_defusing)
    13  
    14  def defuse_stdlib():
    15      """Monkey patch and defuse all stdlib packages
    16  
    17      :warning: The monkey patch is an EXPERIMETNAL feature.
    18      """
    19      defused = {}
    20  
    21      from . import cElementTree
    22      from . import ElementTree
    23      from . import minidom
    24      from . import pulldom
    25      from . import sax
    26      from . import expatbuilder
    27      from . import expatreader
    28      from . import xmlrpc
    29  
    30      xmlrpc.monkey_patch()
    31      defused[xmlrpc] = None
    32  
    33      for defused_mod in [cElementTree, ElementTree, minidom, pulldom, sax,
    34                          expatbuilder, expatreader]:
    35          stdlib_mod = _apply_defusing(defused_mod)
    36          defused[defused_mod] = stdlib_mod
    37  
    38      return defused
    39  
    40  
    41  __version__ = "0.4.1"
    42