GuardianUnivalle-Benito-Yucra 0.1.14__tar.gz → 0.1.15__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.14 → guardianunivalle_benito_yucra-0.1.15}/GuardianUnivalle_Benito_Yucra/detectores/detector_sql.py +8 -5
  2. {guardianunivalle_benito_yucra-0.1.14 → guardianunivalle_benito_yucra-0.1.15}/GuardianUnivalle_Benito_Yucra.egg-info/PKG-INFO +1 -1
  3. {guardianunivalle_benito_yucra-0.1.14 → guardianunivalle_benito_yucra-0.1.15}/PKG-INFO +1 -1
  4. {guardianunivalle_benito_yucra-0.1.14 → guardianunivalle_benito_yucra-0.1.15}/pyproject.toml +1 -1
  5. {guardianunivalle_benito_yucra-0.1.14 → guardianunivalle_benito_yucra-0.1.15}/GuardianUnivalle_Benito_Yucra/__init__.py +0 -0
  6. {guardianunivalle_benito_yucra-0.1.14 → guardianunivalle_benito_yucra-0.1.15}/GuardianUnivalle_Benito_Yucra/auditoria/registro_auditoria.py +0 -0
  7. {guardianunivalle_benito_yucra-0.1.14 → guardianunivalle_benito_yucra-0.1.15}/GuardianUnivalle_Benito_Yucra/criptografia/cifrado_aead.py +0 -0
  8. {guardianunivalle_benito_yucra-0.1.14 → guardianunivalle_benito_yucra-0.1.15}/GuardianUnivalle_Benito_Yucra/criptografia/intercambio_claves.py +0 -0
  9. {guardianunivalle_benito_yucra-0.1.14 → guardianunivalle_benito_yucra-0.1.15}/GuardianUnivalle_Benito_Yucra/criptografia/kdf.py +0 -0
  10. {guardianunivalle_benito_yucra-0.1.14 → guardianunivalle_benito_yucra-0.1.15}/GuardianUnivalle_Benito_Yucra/detectores/detector_csrf.py +0 -0
  11. {guardianunivalle_benito_yucra-0.1.14 → guardianunivalle_benito_yucra-0.1.15}/GuardianUnivalle_Benito_Yucra/detectores/detector_dos.py +0 -0
  12. {guardianunivalle_benito_yucra-0.1.14 → guardianunivalle_benito_yucra-0.1.15}/GuardianUnivalle_Benito_Yucra/detectores/detector_keylogger.py +0 -0
  13. {guardianunivalle_benito_yucra-0.1.14 → guardianunivalle_benito_yucra-0.1.15}/GuardianUnivalle_Benito_Yucra/detectores/detector_xss.py +0 -0
  14. {guardianunivalle_benito_yucra-0.1.14 → guardianunivalle_benito_yucra-0.1.15}/GuardianUnivalle_Benito_Yucra/middleware_web/middleware_web.py +0 -0
  15. {guardianunivalle_benito_yucra-0.1.14 → guardianunivalle_benito_yucra-0.1.15}/GuardianUnivalle_Benito_Yucra/mitigacion/limitador_peticion.py +0 -0
  16. {guardianunivalle_benito_yucra-0.1.14 → guardianunivalle_benito_yucra-0.1.15}/GuardianUnivalle_Benito_Yucra/mitigacion/lista_bloqueo.py +0 -0
  17. {guardianunivalle_benito_yucra-0.1.14 → guardianunivalle_benito_yucra-0.1.15}/GuardianUnivalle_Benito_Yucra/puntuacion/puntuacion_amenaza.py +0 -0
  18. {guardianunivalle_benito_yucra-0.1.14 → guardianunivalle_benito_yucra-0.1.15}/GuardianUnivalle_Benito_Yucra/utilidades.py +0 -0
  19. {guardianunivalle_benito_yucra-0.1.14 → guardianunivalle_benito_yucra-0.1.15}/GuardianUnivalle_Benito_Yucra.egg-info/SOURCES.txt +0 -0
  20. {guardianunivalle_benito_yucra-0.1.14 → guardianunivalle_benito_yucra-0.1.15}/GuardianUnivalle_Benito_Yucra.egg-info/dependency_links.txt +0 -0
  21. {guardianunivalle_benito_yucra-0.1.14 → guardianunivalle_benito_yucra-0.1.15}/GuardianUnivalle_Benito_Yucra.egg-info/requires.txt +0 -0
  22. {guardianunivalle_benito_yucra-0.1.14 → guardianunivalle_benito_yucra-0.1.15}/GuardianUnivalle_Benito_Yucra.egg-info/top_level.txt +0 -0
  23. {guardianunivalle_benito_yucra-0.1.14 → guardianunivalle_benito_yucra-0.1.15}/LICENSE +0 -0
  24. {guardianunivalle_benito_yucra-0.1.14 → guardianunivalle_benito_yucra-0.1.15}/README.md +0 -0
  25. {guardianunivalle_benito_yucra-0.1.14 → guardianunivalle_benito_yucra-0.1.15}/setup.cfg +0 -0
@@ -120,12 +120,15 @@ def detect_sqli_text(text: str) -> Tuple[bool, list]:
120
120
 
121
121
 
122
122
  def get_client_ip(request):
123
- # Primero verifica si hay proxy inverso (X-Forwarded-For)
123
+ """
124
+ Retorna la IP del cliente, manejando proxies.
125
+ """
124
126
  x_forwarded_for = request.META.get("HTTP_X_FORWARDED_FOR")
125
127
  if x_forwarded_for:
126
- ip = x_forwarded_for.split(",")[0] # Tomar la primera IP
128
+ # Puede contener varias IP separadas por coma
129
+ ip = x_forwarded_for.split(",")[0].strip()
127
130
  else:
128
- ip = request.META.get("REMOTE_ADDR") # IP directa
131
+ ip = request.META.get("REMOTE_ADDR")
129
132
  return ip
130
133
 
131
134
 
@@ -146,9 +149,9 @@ class SQLIDefenseMiddleware(MiddlewareMixin):
146
149
 
147
150
  flagged, matches = detect_sqli_text(text)
148
151
  if flagged:
149
- client_ip = get_client_ip(request) # obtener IP del atacante
152
+ client_ip = get_client_ip(request)
150
153
  logger.warning(
151
- f"Ataque detectado desde IP {client_ip}: {matches}, payload: {text}"
154
+ f"Ataque SQL detectado desde IP {client_ip}: {matches}, payload: {text}"
152
155
  )
153
156
 
154
157
  return JsonResponse(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: GuardianUnivalle-Benito-Yucra
3
- Version: 0.1.14
3
+ Version: 0.1.15
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.14
3
+ Version: 0.1.15
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.14"
7
+ version = "0.1.15"
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" }