Sat, 26 Apr 2025 12:34:32 +0200
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 | ) |