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

Sun, 16 Feb 2025 14:56:07 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sun, 16 Feb 2025 14:56:07 +0100
branch
eric7
changeset 11137
a90284948331
parent 11136
437db2f032fd
child 11147
dee6e106b4d3
permissions
-rw-r--r--

Corrected some code style issues.

9325
8157eb19aba5 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
8157eb19aba5 Code Style Checker
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) 2022 - 2025 Detlev Offenbach <detlev@die-offenbachs.de>
9325
8157eb19aba5 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
8157eb19aba5 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
8157eb19aba5 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
10996
a3dc181d14e1 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10683
diff changeset
7 Module implementing checks for using 'requests' or 'httpx' calls without timeout.
9325
8157eb19aba5 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
8157eb19aba5 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
8157eb19aba5 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10 #
8157eb19aba5 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11 # This is a modified version of the one found in the bandit package.
8157eb19aba5 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12 #
8157eb19aba5 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13 # SPDX-License-Identifier: Apache-2.0
8157eb19aba5 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14 #
8157eb19aba5 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15
8157eb19aba5 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16
8157eb19aba5 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17 def getChecks():
8157eb19aba5 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18 """
8157eb19aba5 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19 Public method to get a dictionary with checks handled by this module.
8157eb19aba5 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20
8157eb19aba5 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21 @return dictionary containing checker lists containing checker function and
8157eb19aba5 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22 list of codes
8157eb19aba5 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 @rtype dict
8157eb19aba5 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 """
8157eb19aba5 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25 return {
8157eb19aba5 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 "Call": [
8157eb19aba5 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27 (checkRequestWithouTimeout, ("S114",)),
8157eb19aba5 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 ],
8157eb19aba5 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 }
8157eb19aba5 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30
8157eb19aba5 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31
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: 10507
diff changeset
32 def checkRequestWithouTimeout(reportError, context, _config):
9325
8157eb19aba5 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33 """
8157eb19aba5 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 Function to check for use of requests without timeout.
8157eb19aba5 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35
8157eb19aba5 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 @param reportError function to be used to report errors
8157eb19aba5 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37 @type func
8157eb19aba5 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 @param context security context object
8157eb19aba5 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 @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: 10507
diff changeset
40 @param _config dictionary with configuration data (unused)
9325
8157eb19aba5 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 @type dict
8157eb19aba5 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42 """
10996
a3dc181d14e1 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10683
diff changeset
43 httpVerbs = {"get", "options", "head", "post", "put", "patch", "delete"}
a3dc181d14e1 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10683
diff changeset
44 httpxAttrs = {"request", "stream", "Client", "AsyncClient"} | httpVerbs
10507
d1c6608155ef Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
45 qualName = context.callFunctionNameQual.split(".")[0]
11136
437db2f032fd Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11090
diff changeset
46
437db2f032fd Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11090
diff changeset
47 if (
437db2f032fd Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11090
diff changeset
48 qualName == "requests"
437db2f032fd Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11090
diff changeset
49 and context.callFunctionName in httpVerbs
11137
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
50 and context.checkCallArgValue("timeout") is None
11136
437db2f032fd Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11090
diff changeset
51 ):
11137
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
52 # check for missing timeout
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
53 reportError(
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
54 context.node.lineno - 1,
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
55 context.node.col_offset,
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
56 "S114.1",
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
57 "M",
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
58 "L",
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
59 qualName,
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
60 )
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
61
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
62 if (
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
63 (qualName == "requests" and context.callFunctionName in httpVerbs)
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
64 or (qualName == "httpx" and context.callFunctionName in httpxAttrs)
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
65 ) and context.checkCallArgValue("timeout", "None"):
9325
8157eb19aba5 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
66 # check for timeout=None
11137
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
67 reportError(
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
68 context.node.lineno - 1,
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
69 context.node.col_offset,
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
70 "S114.2",
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
71 "M",
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
72 "L",
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
73 qualName,
a90284948331 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11136
diff changeset
74 )

eric ide

mercurial