Skip to content

Commit 50984dd

Browse files
authored
fix(detectors): Fix bug with empty string and keyword in SQL Injection Detector (#93071)
1 parent 8f185fd commit 50984dd

File tree

2 files changed

+11
-3
lines changed

2 files changed

+11
-3
lines changed

fixtures/events/performance_problems/sql-injection/sql-injection-event-query.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,9 @@
2020
"method": "GET",
2121
"query_string": [
2222
["username", "hello"],
23-
["sort", "username"]
23+
["sort", "username"],
24+
["empty", ""],
25+
["single", "u"]
2426
]
2527
},
2628
"spans": [

src/sentry/utils/performance_issues/detectors/sql_injection_detector.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,11 +83,17 @@ def extract_request_data(self, event: dict[str, Any]) -> None:
8383
query_value = query_pair[1]
8484
query_key = query_pair[0]
8585

86-
if not isinstance(query_value, str):
86+
# Filters out empty strings or single character strings
87+
if (
88+
not isinstance(query_value, str)
89+
or not isinstance(query_key, str)
90+
or not query_value
91+
or len(query_value) == 1
92+
):
8793
continue
8894
if query_key == query_value:
8995
continue
90-
if query_value.upper() in SQL_KEYWORDS:
96+
if query_value.upper() in SQL_KEYWORDS or query_key.upper() in SQL_KEYWORDS:
9197
continue
9298
valid_parameters.append(query_pair)
9399

0 commit comments

Comments
 (0)