src/eric7/Plugins/CheckerPlugins/CodeStyleChecker/Security/Checks/prohibitedCalls.py

Sat, 26 Apr 2025 12:34:32 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 26 Apr 2025 12:34:32 +0200
branch
eric7
changeset 11240
c48c615c04a3
parent 11147
dee6e106b4d3
permissions
-rw-r--r--

MicroPython
- Added a configuration option to disable the support for the no longer produced Pimoroni Pico Wireless Pack.

7612
ca1ce1e0fcff Code Style Checker: started to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
ca1ce1e0fcff Code Style Checker: started to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
11090
f5f5f5803935 Updated copyright for 2025.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10996
diff changeset
3 # Copyright (c) 2020 - 2025 Detlev Offenbach <detlev@die-offenbachs.de>
7612
ca1ce1e0fcff Code Style Checker: started to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
ca1ce1e0fcff Code Style Checker: started to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
ca1ce1e0fcff Code Style Checker: started to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
10503
6a37b6ac3928 Renamed some modules/variables/settings to get rid (mostly) of inappropriate words.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
7 Module implementing checks for prohibited methods and functions.
7612
ca1ce1e0fcff Code Style Checker: started to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
ca1ce1e0fcff Code Style Checker: started to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
7613
382f89c11e27 Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7612
diff changeset
10 #
382f89c11e27 Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7612
diff changeset
11 # This is a modified version of the one found in the bandit package.
382f89c11e27 Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7612
diff changeset
12 #
382f89c11e27 Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7612
diff changeset
13 # Original Copyright 2016 Hewlett-Packard Development Company, L.P.
382f89c11e27 Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7612
diff changeset
14 #
382f89c11e27 Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7612
diff changeset
15 # SPDX-License-Identifier: Apache-2.0
382f89c11e27 Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7612
diff changeset
16 #
382f89c11e27 Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7612
diff changeset
17
7612
ca1ce1e0fcff Code Style Checker: started to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18 import ast
ca1ce1e0fcff Code Style Checker: started to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19 import fnmatch
ca1ce1e0fcff Code Style Checker: started to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20
7622
384e2aa5c073 Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7619
diff changeset
21 import AstUtilities
384e2aa5c073 Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7619
diff changeset
22
10503
6a37b6ac3928 Renamed some modules/variables/settings to get rid (mostly) of inappropriate words.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
23 _prohibitedCalls = {
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11137
diff changeset
24 "S-301": (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
25 [
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
26 "pickle.loads",
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
27 "pickle.load",
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
28 "pickle.Unpickler",
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
29 "dill.loads",
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
30 "dill.load",
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
31 "dill.Unpickler",
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
32 "shelve.open",
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
33 "shelve.DbfilenameShelf",
10507
d1c6608155ef Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10503
diff changeset
34 "jsonpickle.decode",
d1c6608155ef Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10503
diff changeset
35 "jsonpickle.unpickler.decode",
d1c6608155ef Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10503
diff changeset
36 "jsonpickle.unpickler.Unpickler",
d1c6608155ef Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10503
diff changeset
37 "pandas.read_pickle",
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
38 ],
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
39 "M",
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
40 ),
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11137
diff changeset
41 "S-302": (["marshal.load", "marshal.loads"], "M"),
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11137
diff changeset
42 "S-303": (
11137
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
43 [
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
44 "Crypto.Hash.MD2.new",
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
45 "Crypto.Hash.MD4.new",
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
46 "Crypto.Hash.MD5.new",
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
47 "Crypto.Hash.SHA.new",
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
48 "Cryptodome.Hash.MD2.new",
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
49 "Cryptodome.Hash.MD4.new",
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
50 "Cryptodome.Hash.MD5.new",
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
51 "Cryptodome.Hash.SHA.new",
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
52 "cryptography.hazmat.primitives.hashes.MD5",
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
53 "cryptography.hazmat.primitives.hashes.SHA1",
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
54 ],
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
55 "M",
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
56 ),
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11137
diff changeset
57 "S-304": (
11137
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
58 [
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
59 "Crypto.Cipher.ARC2.new",
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
60 "Crypto.Cipher.ARC4.new",
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
61 "Crypto.Cipher.Blowfish.new",
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
62 "Crypto.Cipher.DES.new",
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
63 "Crypto.Cipher.XOR.new",
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
64 "Cryptodome.Cipher.ARC2.new",
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
65 "Cryptodome.Cipher.ARC4.new",
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
66 "Cryptodome.Cipher.Blowfish.new",
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
67 "Cryptodome.Cipher.DES.new",
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
68 "Cryptodome.Cipher.XOR.new",
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
69 "cryptography.hazmat.primitives.ciphers.algorithms.ARC4",
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
70 "cryptography.hazmat.primitives.ciphers.algorithms.Blowfish",
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
71 "cryptography.hazmat.primitives.ciphers.algorithms.CAST5",
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
72 "cryptography.hazmat.primitives.ciphers.algorithms.IDEA",
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
73 "cryptography.hazmat.primitives.ciphers.algorithms.SEED",
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
74 "cryptography.hazmat.primitives.ciphers.algorithms.TripleDES",
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
75 ],
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
76 "H",
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
77 ),
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11137
diff changeset
78 "S-305": (["cryptography.hazmat.primitives.ciphers.modes.ECB"], "M"),
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11137
diff changeset
79 "S-306": (["tempfile.mktemp"], "M"),
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11137
diff changeset
80 "S-307": (["eval"], "M"),
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11137
diff changeset
81 "S-308": (["django.utils.safestring.mark_safe"], "M"),
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11137
diff changeset
82 "S-310": (
11137
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
83 [
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
84 "urllib.request.urlopen",
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
85 "urllib.request.urlretrieve",
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
86 "urllib.request.URLopener",
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
87 "urllib.request.FancyURLopener",
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
88 "six.moves.urllib.request.urlopen",
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
89 "six.moves.urllib.request.urlretrieve",
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
90 "six.moves.urllib.request.URLopener",
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
91 "six.moves.urllib.request.FancyURLopener",
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
92 ],
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
93 "",
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
94 ),
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11137
diff changeset
95 "S-311": (
11137
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
96 [
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
97 "random.Random",
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
98 "random.random",
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
99 "random.randrange",
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
100 "random.randint",
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
101 "random.choice",
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
102 "random.choices",
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
103 "random.uniform",
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
104 "random.triangular",
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
105 "random.randbytes",
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
106 ],
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
107 "L",
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
108 ),
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11137
diff changeset
109 "S-312": (["telnetlib.Telnet"], "H"),
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11137
diff changeset
110 "S-313": (
11137
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
111 [
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
112 "xml.etree.cElementTree.parse",
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
113 "xml.etree.cElementTree.iterparse",
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
114 "xml.etree.cElementTree.fromstring",
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
115 "xml.etree.cElementTree.XMLParser",
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
116 ],
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
117 "M",
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
118 ),
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11137
diff changeset
119 "S-314": (
11137
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
120 [
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
121 "xml.etree.ElementTree.parse",
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
122 "xml.etree.ElementTree.iterparse",
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
123 "xml.etree.ElementTree.fromstring",
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
124 "xml.etree.ElementTree.XMLParser",
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
125 ],
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
126 "M",
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
127 ),
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11137
diff changeset
128 "S-315": (["xml.sax.expatreader.create_parser"], "M"),
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11137
diff changeset
129 "S-316": (
11137
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
130 ["xml.dom.expatbuilder.parse", "xml.dom.expatbuilder.parseString"],
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
131 "M",
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
132 ),
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11137
diff changeset
133 "S-317": (["xml.sax.parse", "xml.sax.parseString", "xml.sax.make_parser"], "M"),
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11137
diff changeset
134 "S-318": (["xml.dom.minidom.parse", "xml.dom.minidom.parseString"], "M"),
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11137
diff changeset
135 "S-319": (["xml.dom.pulldom.parse", "xml.dom.pulldom.parseString"], "M"),
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11137
diff changeset
136 "S-321": (["ftplib.FTP"], "H"),
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11137
diff changeset
137 "S-323": (["ssl._create_unverified_context"], "M"),
9325
8157eb19aba5 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
138 }
7612
ca1ce1e0fcff Code Style Checker: started to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
139
ca1ce1e0fcff Code Style Checker: started to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
140
ca1ce1e0fcff Code Style Checker: started to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
141 def getChecks():
ca1ce1e0fcff Code Style Checker: started to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
142 """
ca1ce1e0fcff Code Style Checker: started to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
143 Public method to get a dictionary with checks handled by this module.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
144
7612
ca1ce1e0fcff Code Style Checker: started to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
145 @return dictionary containing checker lists containing checker function and
ca1ce1e0fcff Code Style Checker: started to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
146 list of codes
ca1ce1e0fcff Code Style Checker: started to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
147 @rtype dict
ca1ce1e0fcff Code Style Checker: started to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
148 """
ca1ce1e0fcff Code Style Checker: started to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
149 return {
7613
382f89c11e27 Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7612
diff changeset
150 "Call": [
10503
6a37b6ac3928 Renamed some modules/variables/settings to get rid (mostly) of inappropriate words.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
151 (checkProhibitedCalls, tuple(_prohibitedCalls)),
7613
382f89c11e27 Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7612
diff changeset
152 ],
7612
ca1ce1e0fcff Code Style Checker: started to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
153 }
ca1ce1e0fcff Code Style Checker: started to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
154
ca1ce1e0fcff Code Style Checker: started to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
155
10683
779cda568acb Changed the source code and the source code documentation to improve the indication of unused method/function arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10638
diff changeset
156 def checkProhibitedCalls(reportError, context, _config):
7613
382f89c11e27 Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7612
diff changeset
157 """
10503
6a37b6ac3928 Renamed some modules/variables/settings to get rid (mostly) of inappropriate words.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
158 Function to check for prohibited method calls.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
159
7613
382f89c11e27 Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7612
diff changeset
160 @param reportError function to be used to report errors
382f89c11e27 Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7612
diff changeset
161 @type func
382f89c11e27 Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7612
diff changeset
162 @param context security context object
382f89c11e27 Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7612
diff changeset
163 @type SecurityContext
10683
779cda568acb Changed the source code and the source code documentation to improve the indication of unused method/function arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10638
diff changeset
164 @param _config dictionary with configuration data (unused)
7613
382f89c11e27 Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7612
diff changeset
165 @type dict
382f89c11e27 Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7612
diff changeset
166 """
7612
ca1ce1e0fcff Code Style Checker: started to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
167 nodeType = context.node.__class__.__name__
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
168
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
169 if nodeType == "Call":
7612
ca1ce1e0fcff Code Style Checker: started to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
170 func = context.node.func
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
171 if isinstance(func, ast.Name) and func.id == "__import__":
7612
ca1ce1e0fcff Code Style Checker: started to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
172 if len(context.node.args):
7622
384e2aa5c073 Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7619
diff changeset
173 if AstUtilities.isString(context.node.args[0]):
7612
ca1ce1e0fcff Code Style Checker: started to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
174 name = context.node.args[0].s
ca1ce1e0fcff Code Style Checker: started to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
175 else:
ca1ce1e0fcff Code Style Checker: started to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
176 name = "UNKNOWN"
ca1ce1e0fcff Code Style Checker: started to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
177 else:
ca1ce1e0fcff Code Style Checker: started to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
178 name = "" # handle '__import__()'
ca1ce1e0fcff Code Style Checker: started to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
179 else:
ca1ce1e0fcff Code Style Checker: started to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
180 name = context.callFunctionNameQual
ca1ce1e0fcff Code Style Checker: started to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
181 # In the case the Call is an importlib.import, treat the first
ca1ce1e0fcff Code Style Checker: started to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
182 # argument name as an actual import module name.
ca1ce1e0fcff Code Style Checker: started to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
183 # Will produce None if argument is not a literal or identifier.
ca1ce1e0fcff Code Style Checker: started to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
184 if name in ["importlib.import_module", "importlib.__import__"]:
7629
21fea11a82fa blackListCalls: fixed an porting issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7622
diff changeset
185 name = context.callArgs[0]
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
186
10503
6a37b6ac3928 Renamed some modules/variables/settings to get rid (mostly) of inappropriate words.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
187 for code in _prohibitedCalls:
6a37b6ac3928 Renamed some modules/variables/settings to get rid (mostly) of inappropriate words.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
188 qualnames, severity = _prohibitedCalls[code]
7612
ca1ce1e0fcff Code Style Checker: started to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
189 for qualname in qualnames:
ca1ce1e0fcff Code Style Checker: started to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
190 if name and fnmatch.fnmatch(name, qualname):
7613
382f89c11e27 Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7612
diff changeset
191 reportError(
382f89c11e27 Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7612
diff changeset
192 context.node.lineno - 1,
7612
ca1ce1e0fcff Code Style Checker: started to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
193 context.node.col_offset,
ca1ce1e0fcff Code Style Checker: started to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
194 code,
7613
382f89c11e27 Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7612
diff changeset
195 severity,
382f89c11e27 Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7612
diff changeset
196 "H",
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
197 name,
7612
ca1ce1e0fcff Code Style Checker: started to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
198 )

eric ide

mercurial