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

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 

9 

10import warnings 

11 

12from .common import ( 

13 DefusedXmlException, 

14 DTDForbidden, 

15 EntitiesForbidden, 

16 ExternalReferenceForbidden, 

17 NotSupportedError, 

18 _apply_defusing, 

19) 

20 

21 

22def defuse_stdlib(): 

23 """Monkey patch and defuse all stdlib packages 

24 

25 :warning: The monkey patch is an EXPERIMETNAL feature. 

26 """ 

27 defused = {} 

28 

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 

38 

39 xmlrpc.monkey_patch() 

40 defused[xmlrpc] = None 

41 

42 defused_mods = [ 

43 cElementTree, 

44 ElementTree, 

45 minidom, 

46 pulldom, 

47 sax, 

48 expatbuilder, 

49 expatreader, 

50 ] 

51 

52 for defused_mod in defused_mods: 

53 stdlib_mod = _apply_defusing(defused_mod) 

54 defused[defused_mod] = stdlib_mod 

55 

56 return defused 

57 

58 

59__version__ = "0.7.1" 

60 

61__all__ = [ 

62 "DefusedXmlException", 

63 "DTDForbidden", 

64 "EntitiesForbidden", 

65 "ExternalReferenceForbidden", 

66 "NotSupportedError", 

67]