|
1 | 1 | { |
2 | 2 | "errors": [], |
3 | | - "generated_at": "2024-06-03T07:52:17Z", |
| 3 | + "generated_at": "2024-08-06T12:35:09Z", |
4 | 4 | "metrics": { |
5 | 5 | "_totals": { |
6 | 6 | "CONFIDENCE.HIGH": 0.0, |
7 | | - "CONFIDENCE.LOW": 2.0, |
| 7 | + "CONFIDENCE.LOW": 3.0, |
8 | 8 | "CONFIDENCE.MEDIUM": 1.0, |
9 | 9 | "CONFIDENCE.UNDEFINED": 0.0, |
10 | 10 | "SEVERITY.HIGH": 0.0, |
11 | 11 | "SEVERITY.LOW": 1.0, |
12 | | - "SEVERITY.MEDIUM": 2.0, |
| 12 | + "SEVERITY.MEDIUM": 3.0, |
13 | 13 | "SEVERITY.UNDEFINED": 0.0, |
14 | | - "loc": 3405, |
| 14 | + "loc": 3497, |
15 | 15 | "nosec": 0 |
16 | 16 | }, |
17 | 17 | "src/setup.py": { |
|
50 | 50 | "loc": 104, |
51 | 51 | "nosec": 0 |
52 | 52 | }, |
53 | | - "src/sqlitecloud/dbapi2.py": { |
| 53 | + "src/sqlitecloud/datatypes.py": { |
54 | 54 | "CONFIDENCE.HIGH": 0.0, |
55 | 55 | "CONFIDENCE.LOW": 0.0, |
56 | | - "CONFIDENCE.MEDIUM": 0.0, |
| 56 | + "CONFIDENCE.MEDIUM": 1.0, |
57 | 57 | "CONFIDENCE.UNDEFINED": 0.0, |
58 | 58 | "SEVERITY.HIGH": 0.0, |
59 | | - "SEVERITY.LOW": 0.0, |
| 59 | + "SEVERITY.LOW": 1.0, |
60 | 60 | "SEVERITY.MEDIUM": 0.0, |
61 | 61 | "SEVERITY.UNDEFINED": 0.0, |
62 | | - "loc": 377, |
| 62 | + "loc": 177, |
63 | 63 | "nosec": 0 |
64 | 64 | }, |
65 | | - "src/sqlitecloud/download.py": { |
| 65 | + "src/sqlitecloud/dbapi2.py": { |
66 | 66 | "CONFIDENCE.HIGH": 0.0, |
67 | 67 | "CONFIDENCE.LOW": 0.0, |
68 | 68 | "CONFIDENCE.MEDIUM": 0.0, |
|
71 | 71 | "SEVERITY.LOW": 0.0, |
72 | 72 | "SEVERITY.MEDIUM": 0.0, |
73 | 73 | "SEVERITY.UNDEFINED": 0.0, |
74 | | - "loc": 32, |
| 74 | + "loc": 376, |
75 | 75 | "nosec": 0 |
76 | 76 | }, |
77 | | - "src/sqlitecloud/driver.py": { |
| 77 | + "src/sqlitecloud/download.py": { |
78 | 78 | "CONFIDENCE.HIGH": 0.0, |
79 | 79 | "CONFIDENCE.LOW": 0.0, |
80 | 80 | "CONFIDENCE.MEDIUM": 0.0, |
|
83 | 83 | "SEVERITY.LOW": 0.0, |
84 | 84 | "SEVERITY.MEDIUM": 0.0, |
85 | 85 | "SEVERITY.UNDEFINED": 0.0, |
86 | | - "loc": 765, |
| 86 | + "loc": 32, |
87 | 87 | "nosec": 0 |
88 | 88 | }, |
89 | | - "src/sqlitecloud/pubsub.py": { |
| 89 | + "src/sqlitecloud/driver.py": { |
90 | 90 | "CONFIDENCE.HIGH": 0.0, |
91 | 91 | "CONFIDENCE.LOW": 0.0, |
92 | 92 | "CONFIDENCE.MEDIUM": 0.0, |
|
95 | 95 | "SEVERITY.LOW": 0.0, |
96 | 96 | "SEVERITY.MEDIUM": 0.0, |
97 | 97 | "SEVERITY.UNDEFINED": 0.0, |
98 | | - "loc": 54, |
| 98 | + "loc": 787, |
99 | 99 | "nosec": 0 |
100 | 100 | }, |
101 | | - "src/sqlitecloud/resultset.py": { |
| 101 | + "src/sqlitecloud/pubsub.py": { |
102 | 102 | "CONFIDENCE.HIGH": 0.0, |
103 | 103 | "CONFIDENCE.LOW": 0.0, |
104 | 104 | "CONFIDENCE.MEDIUM": 0.0, |
|
107 | 107 | "SEVERITY.LOW": 0.0, |
108 | 108 | "SEVERITY.MEDIUM": 0.0, |
109 | 109 | "SEVERITY.UNDEFINED": 0.0, |
110 | | - "loc": 80, |
| 110 | + "loc": 56, |
111 | 111 | "nosec": 0 |
112 | 112 | }, |
113 | | - "src/sqlitecloud/types.py": { |
| 113 | + "src/sqlitecloud/resultset.py": { |
114 | 114 | "CONFIDENCE.HIGH": 0.0, |
115 | 115 | "CONFIDENCE.LOW": 0.0, |
116 | | - "CONFIDENCE.MEDIUM": 1.0, |
| 116 | + "CONFIDENCE.MEDIUM": 0.0, |
117 | 117 | "CONFIDENCE.UNDEFINED": 0.0, |
118 | 118 | "SEVERITY.HIGH": 0.0, |
119 | | - "SEVERITY.LOW": 1.0, |
| 119 | + "SEVERITY.LOW": 0.0, |
120 | 120 | "SEVERITY.MEDIUM": 0.0, |
121 | 121 | "SEVERITY.UNDEFINED": 0.0, |
122 | | - "loc": 194, |
| 122 | + "loc": 99, |
123 | 123 | "nosec": 0 |
124 | 124 | }, |
125 | 125 | "src/sqlitecloud/upload.py": { |
|
172 | 172 | }, |
173 | 173 | "src/tests/integration/test_client.py": { |
174 | 174 | "CONFIDENCE.HIGH": 0.0, |
175 | | - "CONFIDENCE.LOW": 0.0, |
| 175 | + "CONFIDENCE.LOW": 1.0, |
176 | 176 | "CONFIDENCE.MEDIUM": 0.0, |
177 | 177 | "CONFIDENCE.UNDEFINED": 0.0, |
178 | 178 | "SEVERITY.HIGH": 0.0, |
179 | 179 | "SEVERITY.LOW": 0.0, |
180 | | - "SEVERITY.MEDIUM": 0.0, |
| 180 | + "SEVERITY.MEDIUM": 1.0, |
181 | 181 | "SEVERITY.UNDEFINED": 0.0, |
182 | | - "loc": 492, |
| 182 | + "loc": 543, |
183 | 183 | "nosec": 0 |
184 | 184 | }, |
185 | 185 | "src/tests/integration/test_dbapi2.py": { |
|
239 | 239 | "SEVERITY.LOW": 0.0, |
240 | 240 | "SEVERITY.MEDIUM": 1.0, |
241 | 241 | "SEVERITY.UNDEFINED": 0.0, |
242 | | - "loc": 118, |
| 242 | + "loc": 129, |
243 | 243 | "nosec": 0 |
244 | 244 | }, |
245 | 245 | "src/tests/integration/test_sqlite3_parity.py": { |
|
287 | 287 | "SEVERITY.LOW": 0.0, |
288 | 288 | "SEVERITY.MEDIUM": 0.0, |
289 | 289 | "SEVERITY.UNDEFINED": 0.0, |
290 | | - "loc": 242, |
| 290 | + "loc": 241, |
291 | 291 | "nosec": 0 |
292 | 292 | }, |
293 | 293 | "src/tests/unit/test_driver.py": { |
|
311 | 311 | "SEVERITY.LOW": 0.0, |
312 | 312 | "SEVERITY.MEDIUM": 0.0, |
313 | 313 | "SEVERITY.UNDEFINED": 0.0, |
314 | | - "loc": 113, |
| 314 | + "loc": 119, |
315 | 315 | "nosec": 0 |
316 | 316 | }, |
317 | 317 | "src/tests/unit/test_types.py": { |
|
329 | 329 | }, |
330 | 330 | "results": [ |
331 | 331 | { |
332 | | - "code": "107 class SQLiteCloudAccount:\n108 def __init__(\n109 self,\n110 username: Optional[str] = \"\",\n111 password: Optional[str] = \"\",\n112 hostname: str = \"\",\n113 dbname: Optional[str] = \"\",\n114 port: int = SQLITECLOUD_DEFAULT.PORT.value,\n115 apikey: Optional[str] = \"\",\n116 ) -> None:\n117 # User name is required unless connectionstring is provided\n118 self.username = username\n119 # Password is required unless connection string is provided\n120 self.password = password\n121 # Password is hashed\n122 self.password_hashed = False\n123 # API key instead of username and password\n124 self.apikey = apikey\n125 # Name of database to open\n126 self.dbname = dbname\n127 # Like mynode.sqlitecloud.io\n128 self.hostname = hostname\n129 self.port = port\n130 \n", |
| 332 | + "code": "87 class SQLiteCloudAccount:\n88 def __init__(\n89 self,\n90 username: Optional[str] = \"\",\n91 password: Optional[str] = \"\",\n92 hostname: str = \"\",\n93 dbname: Optional[str] = \"\",\n94 port: int = SQLITECLOUD_DEFAULT.PORT.value,\n95 apikey: Optional[str] = \"\",\n96 ) -> None:\n97 # User name is required unless connectionstring is provided\n98 self.username = username\n99 # Password is required unless connection string is provided\n100 self.password = password\n101 # Password is hashed\n102 self.password_hashed = False\n103 # API key instead of username and password\n104 self.apikey = apikey\n105 # Name of database to open\n106 self.dbname = dbname\n107 # Like mynode.sqlitecloud.io\n108 self.hostname = hostname\n109 self.port = port\n110 \n", |
333 | 333 | "col_offset": 4, |
334 | | - "filename": "src/sqlitecloud/types.py", |
| 334 | + "filename": "src/sqlitecloud/datatypes.py", |
335 | 335 | "issue_confidence": "MEDIUM", |
336 | 336 | "issue_severity": "LOW", |
337 | 337 | "issue_text": "Possible hardcoded password: ''", |
338 | | - "line_number": 108, |
| 338 | + "line_number": 88, |
339 | 339 | "line_range": [ |
| 340 | + 88, |
| 341 | + 89, |
| 342 | + 90, |
| 343 | + 91, |
| 344 | + 92, |
| 345 | + 93, |
| 346 | + 94, |
| 347 | + 95, |
| 348 | + 96, |
| 349 | + 97, |
| 350 | + 98, |
| 351 | + 99, |
| 352 | + 100, |
| 353 | + 101, |
| 354 | + 102, |
| 355 | + 103, |
| 356 | + 104, |
| 357 | + 105, |
| 358 | + 106, |
| 359 | + 107, |
340 | 360 | 108, |
341 | | - 109, |
342 | | - 110, |
343 | | - 111, |
344 | | - 112, |
345 | | - 113, |
346 | | - 114, |
347 | | - 115, |
348 | | - 116, |
349 | | - 117, |
350 | | - 118, |
351 | | - 119, |
352 | | - 120, |
353 | | - 121, |
354 | | - 122, |
355 | | - 123, |
356 | | - 124, |
357 | | - 125, |
358 | | - 126, |
359 | | - 127, |
360 | | - 128, |
361 | | - 129 |
| 361 | + 109 |
362 | 362 | ], |
363 | 363 | "more_info": "https://bandit.readthedocs.io/en/latest/plugins/b107_hardcoded_password_default.html", |
364 | 364 | "test_id": "B107", |
365 | 365 | "test_name": "hardcoded_password_default" |
366 | 366 | }, |
367 | 367 | { |
368 | | - "code": "164 client.exec_query(\n165 f\"UPDATE genres SET Name = '{new_name}' WHERE GenreId = 1;\", connection\n166 )\n", |
| 368 | + "code": "639 for i in range(nRows):\n640 sql += f\"INSERT INTO TestCompress (name) VALUES ('Test {i}'); \"\n641 \n", |
| 369 | + "col_offset": 23, |
| 370 | + "filename": "src/tests/integration/test_client.py", |
| 371 | + "issue_confidence": "LOW", |
| 372 | + "issue_severity": "MEDIUM", |
| 373 | + "issue_text": "Possible SQL injection vector through string-based query construction.", |
| 374 | + "line_number": 640, |
| 375 | + "line_range": [ |
| 376 | + 640 |
| 377 | + ], |
| 378 | + "more_info": "https://bandit.readthedocs.io/en/latest/plugins/b608_hardcoded_sql_expressions.html", |
| 379 | + "test_id": "B608", |
| 380 | + "test_name": "hardcoded_sql_expressions" |
| 381 | + }, |
| 382 | + { |
| 383 | + "code": "179 client.exec_query(\n180 f\"UPDATE genres SET Name = '{new_name}' WHERE GenreId = 1;\", connection\n181 )\n", |
369 | 384 | "col_offset": 12, |
370 | 385 | "filename": "src/tests/integration/test_pubsub.py", |
371 | 386 | "issue_confidence": "LOW", |
372 | 387 | "issue_severity": "MEDIUM", |
373 | 388 | "issue_text": "Possible SQL injection vector through string-based query construction.", |
374 | | - "line_number": 165, |
| 389 | + "line_number": 180, |
375 | 390 | "line_range": [ |
376 | | - 165 |
| 391 | + 180 |
377 | 392 | ], |
378 | 393 | "more_info": "https://bandit.readthedocs.io/en/latest/plugins/b608_hardcoded_sql_expressions.html", |
379 | 394 | "test_id": "B608", |
|
0 commit comments