GuardianUnivalle-Benito-Yucra 0.1.24__tar.gz → 0.1.25__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of GuardianUnivalle-Benito-Yucra might be problematic. Click here for more details.

Files changed (25) hide show
  1. {guardianunivalle_benito_yucra-0.1.24 → guardianunivalle_benito_yucra-0.1.25}/GuardianUnivalle_Benito_Yucra/detectores/detector_sql.py +3 -45
  2. {guardianunivalle_benito_yucra-0.1.24 → guardianunivalle_benito_yucra-0.1.25}/GuardianUnivalle_Benito_Yucra.egg-info/PKG-INFO +1 -1
  3. {guardianunivalle_benito_yucra-0.1.24 → guardianunivalle_benito_yucra-0.1.25}/PKG-INFO +1 -1
  4. {guardianunivalle_benito_yucra-0.1.24 → guardianunivalle_benito_yucra-0.1.25}/pyproject.toml +1 -1
  5. {guardianunivalle_benito_yucra-0.1.24 → guardianunivalle_benito_yucra-0.1.25}/GuardianUnivalle_Benito_Yucra/__init__.py +0 -0
  6. {guardianunivalle_benito_yucra-0.1.24 → guardianunivalle_benito_yucra-0.1.25}/GuardianUnivalle_Benito_Yucra/auditoria/registro_auditoria.py +0 -0
  7. {guardianunivalle_benito_yucra-0.1.24 → guardianunivalle_benito_yucra-0.1.25}/GuardianUnivalle_Benito_Yucra/criptografia/cifrado_aead.py +0 -0
  8. {guardianunivalle_benito_yucra-0.1.24 → guardianunivalle_benito_yucra-0.1.25}/GuardianUnivalle_Benito_Yucra/criptografia/intercambio_claves.py +0 -0
  9. {guardianunivalle_benito_yucra-0.1.24 → guardianunivalle_benito_yucra-0.1.25}/GuardianUnivalle_Benito_Yucra/criptografia/kdf.py +0 -0
  10. {guardianunivalle_benito_yucra-0.1.24 → guardianunivalle_benito_yucra-0.1.25}/GuardianUnivalle_Benito_Yucra/detectores/detector_csrf.py +0 -0
  11. {guardianunivalle_benito_yucra-0.1.24 → guardianunivalle_benito_yucra-0.1.25}/GuardianUnivalle_Benito_Yucra/detectores/detector_dos.py +0 -0
  12. {guardianunivalle_benito_yucra-0.1.24 → guardianunivalle_benito_yucra-0.1.25}/GuardianUnivalle_Benito_Yucra/detectores/detector_keylogger.py +0 -0
  13. {guardianunivalle_benito_yucra-0.1.24 → guardianunivalle_benito_yucra-0.1.25}/GuardianUnivalle_Benito_Yucra/detectores/detector_xss.py +0 -0
  14. {guardianunivalle_benito_yucra-0.1.24 → guardianunivalle_benito_yucra-0.1.25}/GuardianUnivalle_Benito_Yucra/middleware_web/middleware_web.py +0 -0
  15. {guardianunivalle_benito_yucra-0.1.24 → guardianunivalle_benito_yucra-0.1.25}/GuardianUnivalle_Benito_Yucra/mitigacion/limitador_peticion.py +0 -0
  16. {guardianunivalle_benito_yucra-0.1.24 → guardianunivalle_benito_yucra-0.1.25}/GuardianUnivalle_Benito_Yucra/mitigacion/lista_bloqueo.py +0 -0
  17. {guardianunivalle_benito_yucra-0.1.24 → guardianunivalle_benito_yucra-0.1.25}/GuardianUnivalle_Benito_Yucra/puntuacion/puntuacion_amenaza.py +0 -0
  18. {guardianunivalle_benito_yucra-0.1.24 → guardianunivalle_benito_yucra-0.1.25}/GuardianUnivalle_Benito_Yucra/utilidades.py +0 -0
  19. {guardianunivalle_benito_yucra-0.1.24 → guardianunivalle_benito_yucra-0.1.25}/GuardianUnivalle_Benito_Yucra.egg-info/SOURCES.txt +0 -0
  20. {guardianunivalle_benito_yucra-0.1.24 → guardianunivalle_benito_yucra-0.1.25}/GuardianUnivalle_Benito_Yucra.egg-info/dependency_links.txt +0 -0
  21. {guardianunivalle_benito_yucra-0.1.24 → guardianunivalle_benito_yucra-0.1.25}/GuardianUnivalle_Benito_Yucra.egg-info/requires.txt +0 -0
  22. {guardianunivalle_benito_yucra-0.1.24 → guardianunivalle_benito_yucra-0.1.25}/GuardianUnivalle_Benito_Yucra.egg-info/top_level.txt +0 -0
  23. {guardianunivalle_benito_yucra-0.1.24 → guardianunivalle_benito_yucra-0.1.25}/LICENSE +0 -0
  24. {guardianunivalle_benito_yucra-0.1.24 → guardianunivalle_benito_yucra-0.1.25}/README.md +0 -0
  25. {guardianunivalle_benito_yucra-0.1.24 → guardianunivalle_benito_yucra-0.1.25}/setup.cfg +0 -0
@@ -59,56 +59,12 @@ def get_client_ip(request):
59
59
 
60
60
 
61
61
  class SQLIDefenseMiddleware(MiddlewareMixin):
62
- def process_request(self, request):
63
- # 1️⃣ Excluir rutas primero
64
- exempt_paths = getattr(settings, "SQLI_DEFENSE_EXEMPT_PATHS", [])
65
- if any(request.path.startswith(p) for p in exempt_paths):
66
- return None # No analizar payload
67
-
68
- # 2️⃣ Verificar si viene de un origin confiable (Netlify u otros frontends)
69
- trusted_origins = getattr(settings, "SQLI_DEFENSE_TRUSTED_ORIGINS", [])
70
- request_origin = request.META.get("HTTP_ORIGIN", "")
71
- if request_origin in trusted_origins:
72
- return None # Permitir solicitud confiable
73
-
74
- # 3️⃣ Verificar IP confiable
75
- client_ip = get_client_ip(request)
76
- trusted_ips = getattr(settings, "SQLI_DEFENSE_TRUSTED_IPS", [])
77
- if client_ip in trusted_ips:
78
- return None
79
-
80
- # 4️⃣ Analizar payload
81
- text = extract_payload_text(request)
82
- if not text:
83
- return None
84
-
85
- flagged, descripcion = detect_sql_attack(text)
86
- if flagged:
87
- request.sql_attack_info = {
88
- "ip": client_ip,
89
- "tipos": ["SQL"],
90
- "descripcion": descripcion,
91
- "payload": text,
92
- }
93
- logger.warning(
94
- f"Ataque SQL detectado desde IP {client_ip}, origin {request_origin}: {descripcion}, payload: {text}"
95
- )
96
-
97
- return None
98
-
99
-
100
- """ class SQLIDefenseMiddleware(MiddlewareMixin):
101
62
  def process_request(self, request):
102
63
  client_ip = get_client_ip(request)
103
64
  trusted_ips = getattr(settings, "SQLI_DEFENSE_TRUSTED_IPS", [])
104
- exempt_paths = getattr(settings, "SQLI_DEFENSE_EXEMPT_PATHS", [])
105
65
 
106
66
  if client_ip in trusted_ips:
107
67
  return None
108
- # 2️⃣ Permitir rutas exentas
109
- for path in exempt_paths:
110
- if request.path.startswith(path):
111
- return None
112
68
 
113
69
  text = extract_payload_text(request)
114
70
  if not text:
@@ -123,8 +79,10 @@ class SQLIDefenseMiddleware(MiddlewareMixin):
123
79
  "descripcion": descripcion,
124
80
  "payload": text,
125
81
  }
82
+
126
83
  logger.warning(
127
84
  f"Ataque SQL detectado desde IP {client_ip}: {descripcion}, payload: {text}"
128
85
  )
86
+
129
87
  # No devolvemos JsonResponse, solo marcamos el ataque
130
- return None """
88
+ return None
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: GuardianUnivalle-Benito-Yucra
3
- Version: 0.1.24
3
+ Version: 0.1.25
4
4
  Summary: Middleware y detectores de seguridad (SQLi, XSS, CSRF, DoS, Keylogger) para Django/Flask
5
5
  Author-email: Andres Benito Calle Yucra <benitoandrescalle035@gmail.com>
6
6
  License: MIT
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: GuardianUnivalle-Benito-Yucra
3
- Version: 0.1.24
3
+ Version: 0.1.25
4
4
  Summary: Middleware y detectores de seguridad (SQLi, XSS, CSRF, DoS, Keylogger) para Django/Flask
5
5
  Author-email: Andres Benito Calle Yucra <benitoandrescalle035@gmail.com>
6
6
  License: MIT
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "GuardianUnivalle-Benito-Yucra" # usar mayúsculas consistente
7
- version = "0.1.24"
7
+ version = "0.1.25"
8
8
  description = "Middleware y detectores de seguridad (SQLi, XSS, CSRF, DoS, Keylogger) para Django/Flask"
9
9
  authors = [
10
10
  { name = "Andres Benito Calle Yucra", email = "benitoandrescalle035@gmail.com" }