---
name: detect_sql_injection
kind: function
lang: py
domain: cybersecurity
version: "1.0.0"
purity: pure
signature: "def detect_sql_injection(input_str: str) -> tuple"
description: "Detecta patrones de SQL injection en un string. Retorna (is_threat, pattern) con el nombre del patron detectado."
tags: [sqli, injection, detection, security, python]
uses_functions: []
uses_types: []
returns: []
returns_optional: false
error_type: ""
imports: [re]
params:
  - name: input_str
    desc: "string a analizar en busca de patrones de SQL injection"
output: "tupla (is_threat, pattern) indicando si se detectó amenaza y el nombre del patrón"
tested: false
tests: []
test_file_path: ""
file_path: "python/functions/cybersecurity/cybersecurity.py"
---

## Ejemplo

```python
detect_sql_injection("' OR '1'='1")
# (True, "string_tautology")

detect_sql_injection("; DROP TABLE users")
# (True, "stacked_query")

detect_sql_injection("hello world")
# (False, "")
```

## Notas

Detecta 10 patrones: sql_keyword, tautology, stacked_query, comment_injection, string_tautology, union_select, hex_literal, char_function, concat_function, time_based. No reemplaza un WAF pero es util para logging y alertas tempranas.
