GuardianUnivalle-Benito-Yucra 0.1.63__tar.gz → 0.1.65__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.63 → guardianunivalle_benito_yucra-0.1.65}/GuardianUnivalle_Benito_Yucra/detectores/detector_dos.py +6 -12
  2. {guardianunivalle_benito_yucra-0.1.63 → guardianunivalle_benito_yucra-0.1.65}/GuardianUnivalle_Benito_Yucra.egg-info/PKG-INFO +1 -1
  3. {guardianunivalle_benito_yucra-0.1.63 → guardianunivalle_benito_yucra-0.1.65}/PKG-INFO +1 -1
  4. {guardianunivalle_benito_yucra-0.1.63 → guardianunivalle_benito_yucra-0.1.65}/pyproject.toml +1 -1
  5. {guardianunivalle_benito_yucra-0.1.63 → guardianunivalle_benito_yucra-0.1.65}/GuardianUnivalle_Benito_Yucra/__init__.py +0 -0
  6. {guardianunivalle_benito_yucra-0.1.63 → guardianunivalle_benito_yucra-0.1.65}/GuardianUnivalle_Benito_Yucra/auditoria/registro_auditoria.py +0 -0
  7. {guardianunivalle_benito_yucra-0.1.63 → guardianunivalle_benito_yucra-0.1.65}/GuardianUnivalle_Benito_Yucra/criptografia/cifrado_aead.py +0 -0
  8. {guardianunivalle_benito_yucra-0.1.63 → guardianunivalle_benito_yucra-0.1.65}/GuardianUnivalle_Benito_Yucra/criptografia/intercambio_claves.py +0 -0
  9. {guardianunivalle_benito_yucra-0.1.63 → guardianunivalle_benito_yucra-0.1.65}/GuardianUnivalle_Benito_Yucra/criptografia/kdf.py +0 -0
  10. {guardianunivalle_benito_yucra-0.1.63 → guardianunivalle_benito_yucra-0.1.65}/GuardianUnivalle_Benito_Yucra/detectores/detector_csrf.py +0 -0
  11. {guardianunivalle_benito_yucra-0.1.63 → guardianunivalle_benito_yucra-0.1.65}/GuardianUnivalle_Benito_Yucra/detectores/detector_keylogger.py +0 -0
  12. {guardianunivalle_benito_yucra-0.1.63 → guardianunivalle_benito_yucra-0.1.65}/GuardianUnivalle_Benito_Yucra/detectores/detector_sql.py +0 -0
  13. {guardianunivalle_benito_yucra-0.1.63 → guardianunivalle_benito_yucra-0.1.65}/GuardianUnivalle_Benito_Yucra/detectores/detector_xss.py +0 -0
  14. {guardianunivalle_benito_yucra-0.1.63 → guardianunivalle_benito_yucra-0.1.65}/GuardianUnivalle_Benito_Yucra/middleware_web/middleware_web.py +0 -0
  15. {guardianunivalle_benito_yucra-0.1.63 → guardianunivalle_benito_yucra-0.1.65}/GuardianUnivalle_Benito_Yucra/mitigacion/limitador_peticion.py +0 -0
  16. {guardianunivalle_benito_yucra-0.1.63 → guardianunivalle_benito_yucra-0.1.65}/GuardianUnivalle_Benito_Yucra/mitigacion/lista_bloqueo.py +0 -0
  17. {guardianunivalle_benito_yucra-0.1.63 → guardianunivalle_benito_yucra-0.1.65}/GuardianUnivalle_Benito_Yucra/puntuacion/puntuacion_amenaza.py +0 -0
  18. {guardianunivalle_benito_yucra-0.1.63 → guardianunivalle_benito_yucra-0.1.65}/GuardianUnivalle_Benito_Yucra/utilidades.py +0 -0
  19. {guardianunivalle_benito_yucra-0.1.63 → guardianunivalle_benito_yucra-0.1.65}/GuardianUnivalle_Benito_Yucra.egg-info/SOURCES.txt +0 -0
  20. {guardianunivalle_benito_yucra-0.1.63 → guardianunivalle_benito_yucra-0.1.65}/GuardianUnivalle_Benito_Yucra.egg-info/dependency_links.txt +0 -0
  21. {guardianunivalle_benito_yucra-0.1.63 → guardianunivalle_benito_yucra-0.1.65}/GuardianUnivalle_Benito_Yucra.egg-info/requires.txt +0 -0
  22. {guardianunivalle_benito_yucra-0.1.63 → guardianunivalle_benito_yucra-0.1.65}/GuardianUnivalle_Benito_Yucra.egg-info/top_level.txt +0 -0
  23. {guardianunivalle_benito_yucra-0.1.63 → guardianunivalle_benito_yucra-0.1.65}/LICENSE +0 -0
  24. {guardianunivalle_benito_yucra-0.1.63 → guardianunivalle_benito_yucra-0.1.65}/README.md +0 -0
  25. {guardianunivalle_benito_yucra-0.1.63 → guardianunivalle_benito_yucra-0.1.65}/setup.cfg +0 -0
@@ -7,9 +7,9 @@ from typing import Dict, List, Set
7
7
  from django.conf import settings
8
8
  from django.utils.deprecation import MiddlewareMixin
9
9
  from django.http import HttpResponseForbidden
10
- import requests # ⬅️ Necesario para la función de scraping
11
- import re # ⬅️ Necesario para el parseo de IPs/CIDR
12
- from ipaddress import ip_address, IPv4Address, IPv4Network # Necesario para el Escaneo Avanzado (CIDR)
10
+ import requests # Necesario para la función de scraping
11
+ import re # Necesario para el parseo de IPs/CIDR
12
+ from ipaddress import ip_address, IPv4Address, IPv4Network # Necesario para el Escaneo Avanzado (CIDR) check ip
13
13
 
14
14
  # =====================================================
15
15
  # === CONFIGURACIÓN GLOBAL Y LOGGER ===
@@ -27,19 +27,18 @@ if not logger.handlers:
27
27
  # URLs CONCEPTUALES de donde EXTRAERÍAS IPs/CIDR
28
28
  IP_BLACKLIST_SOURCES = [
29
29
  # 1. FireHOL (Agregador General de Nivel 1)
30
- # Resultado: Éxito al obtener 4438 IPs/CIDR
30
+ # Resultado: Éxito al obtener
31
31
  "https://iplists.firehol.org/files/firehol_level1.netset",
32
32
 
33
33
  # 2. Abuse.ch Feodo Tracker (Botnets C&C)
34
- # Resultado: Éxito al obtener 2 IPs/CIDR (puede ser bajo, pero es funcional)
34
+ # Resultado: Éxito al obtener
35
35
  "https://feodotracker.abuse.ch/downloads/ipblocklist.txt",
36
36
 
37
37
  # 3. Tor Project (Nodos de Salida)
38
- # Resultado: Éxito al obtener 1166 IPs/CIDR
38
+ # Resultado: Éxito al obtener
39
39
  "https://check.torproject.org/torbulkexitlist?ip=1.1.1.1"
40
40
  ]
41
41
 
42
- # Cabeceras para simular un navegador
43
42
  SCRAPING_HEADERS = {
44
43
  'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'
45
44
  }
@@ -158,7 +157,6 @@ def get_client_ip(request) -> str:
158
157
 
159
158
  def limpiar_registro_global():
160
159
  """Elimina IPs sin actividad reciente y desbloquea IPs temporales."""
161
- # ... (La implementación de limpiar_registro_global permanece igual)
162
160
  ahora = time.time()
163
161
  expiracion = VENTANA_SEGUNDOS * 2
164
162
  inactivas = []
@@ -178,7 +176,6 @@ def limpiar_registro_global():
178
176
 
179
177
  def limpiar_registro(ip: str):
180
178
  """Limpia peticiones antiguas fuera de la ventana de tiempo."""
181
- # ... (La implementación de limpiar_registro permanece igual)
182
179
  ahora = time.time()
183
180
  if ip not in REGISTRO_SOLICITUDES:
184
181
  REGISTRO_SOLICITUDES[ip] = deque()
@@ -188,7 +185,6 @@ def limpiar_registro(ip: str):
188
185
 
189
186
  def calcular_nivel_amenaza_dos(tasa_peticion: int, limite: int = LIMITE_PETICIONES) -> float:
190
187
  """Calcula la puntuación de amenaza DoS (Rate Limiting)."""
191
- # ... (La implementación de calcular_nivel_amenaza_dos permanece igual)
192
188
  proporcion = tasa_peticion / max(limite, 1)
193
189
  s_dos = PESO_DOS * min(proporcion, 2.0)
194
190
  return round(min(s_dos, 1.0), 3)
@@ -218,7 +214,6 @@ def registrar_evento(tipo: str, descripcion: str, severidad: str = "MEDIA"):
218
214
 
219
215
  def detectar_dos(ip: str, tasa_peticion: int, limite: int = LIMITE_PETICIONES) -> bool:
220
216
  """Evalúa si la tasa de peticiones excede el umbral permitido y aplica mitigación."""
221
- # ... (La implementación de detectar_dos permanece igual)
222
217
  if tasa_peticion > limite:
223
218
  registrar_evento(
224
219
  tipo="DoS",
@@ -237,7 +232,6 @@ def detectar_dos(ip: str, tasa_peticion: int, limite: int = LIMITE_PETICIONES) -
237
232
 
238
233
  def analizar_headers_avanzado(user_agent: str, referer: str) -> List[str]:
239
234
  """Detecta patrones sospechosos, penalizando User-Agents automatizados."""
240
- # ... (La implementación de analizar_headers_avanzado permanece igual)
241
235
  sospechas = []
242
236
 
243
237
  if not user_agent or len(user_agent) < 10 or user_agent.lower() == "python-requests/2.25.1":
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: GuardianUnivalle-Benito-Yucra
3
- Version: 0.1.63
3
+ Version: 0.1.65
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.63
3
+ Version: 0.1.65
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.63"
7
+ version = "0.1.65"
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" }