Your question is SQL Injection Check Function. Start with the requirements on the right.
Run and submit as often as you like. When you're ready, talk me through your approach or go straight to the code.
Niantic services receive user-controlled strings from Pokémon GO and Pokémon Sleep clients. Implement a detector for injection-like payloads that may be disguised with URL encoding, HTML entities, Unicode compatibility characters, comments, or inconsistent casing.
Return True when the input contains one of these suspicious structures outside a quoted literal:
;.-- or a block comment beginning with /*.union select.or 1 = 1, allowing arbitrary whitespace.Quoted text must be ignored while searching for keyword and numeric patterns. For example, "union select" is harmless because the words occur inside a quoted literal, while ' union select is suspicious because the quote closes before the keywords.
Write detect_injection(value), where value is a non-empty string. Return a Boolean. Before scanning, repeatedly URL-decode and HTML-decode the value at most three times, then apply Unicode NFKC normalization and lowercase conversion. Decoding stops early when a pass makes no change.
def detect_injection(value):