GuardianUnivalle-Benito-Yucra 0.1.13__py3-none-any.whl → 0.1.14__py3-none-any.whl

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.

@@ -119,42 +119,42 @@ def detect_sqli_text(text: str) -> Tuple[bool, list]:
119
119
  return (len(matches) > 0, matches)
120
120
 
121
121
 
122
+ def get_client_ip(request):
123
+ # Primero verifica si hay proxy inverso (X-Forwarded-For)
124
+ x_forwarded_for = request.META.get("HTTP_X_FORWARDED_FOR")
125
+ if x_forwarded_for:
126
+ ip = x_forwarded_for.split(",")[0] # Tomar la primera IP
127
+ else:
128
+ ip = request.META.get("REMOTE_ADDR") # IP directa
129
+ return ip
130
+
131
+
122
132
  # ==============================
123
133
  # MIDDLEWARE
124
134
  # ==============================
125
135
 
126
136
 
127
137
  class SQLIDefenseMiddleware(MiddlewareMixin):
128
- """
129
- Middleware para proteger la aplicación contra ataques de SQL Injection.
130
- Analiza cada solicitud entrante y bloquea si detecta patrones maliciosos,
131
- excepto en rutas definidas como confiables en settings.SQLI_DEFENSE_EXCLUDED_PATHS.
132
- """
133
-
134
138
  def process_request(self, request):
135
- # Obtener rutas excluidas desde settings
136
139
  excluded_paths = getattr(settings, "SQLI_DEFENSE_EXCLUDED_PATHS", [])
137
-
138
- # Saltar verificación si la ruta está excluida
139
140
  if any(request.path.startswith(p) for p in excluded_paths):
140
141
  return None
141
142
 
142
- # Extraer texto de la solicitud
143
143
  text = extract_payload_text(request)
144
144
  if not text:
145
145
  return None
146
146
 
147
- # Detectar patrones SQL Injection
148
147
  flagged, matches = detect_sqli_text(text)
149
148
  if flagged:
150
- # Registrar evento en log
151
- logger.warning(f"Ataque detectado: {matches}, payload: {text}")
149
+ client_ip = get_client_ip(request) # obtener IP del atacante
150
+ logger.warning(
151
+ f"Ataque detectado desde IP {client_ip}: {matches}, payload: {text}"
152
+ )
152
153
 
153
- # Bloquear la solicitud y devolver mensaje
154
154
  return JsonResponse(
155
- {"mensaje": "Ataque detectado", "tipos": matches}, status=403
155
+ {"mensaje": "Ataque detectado", "tipos": matches, "ip": client_ip},
156
+ status=403,
156
157
  )
157
-
158
158
  return None
159
159
 
160
160
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: GuardianUnivalle-Benito-Yucra
3
- Version: 0.1.13
3
+ Version: 0.1.14
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
@@ -7,14 +7,14 @@ GuardianUnivalle_Benito_Yucra/criptografia/kdf.py,sha256=_sbepEY1qHEKga0ExrX2WRg
7
7
  GuardianUnivalle_Benito_Yucra/detectores/detector_csrf.py,sha256=EAYfLkHuxGC5rXSu4mZJ4yZDCbwBpTX8xZWGKz7i5wA,692
8
8
  GuardianUnivalle_Benito_Yucra/detectores/detector_dos.py,sha256=lMWmCw6nccCEnek53nVjpoBCeiBqLdrSXxqRuI7VP2I,696
9
9
  GuardianUnivalle_Benito_Yucra/detectores/detector_keylogger.py,sha256=rEDG-Q_R56OsG2ypfHVBK7erolYjdvATnAxB3yvPXts,729
10
- GuardianUnivalle_Benito_Yucra/detectores/detector_sql.py,sha256=6fUm0ecbfaYnv_3PKyAPRf88jodqpBQ7glDAjIo17F0,5888
10
+ GuardianUnivalle_Benito_Yucra/detectores/detector_sql.py,sha256=ba413KfYR30kLQdKGPXHOvn8udQY1mRtcL5rlEEHqSY,5832
11
11
  GuardianUnivalle_Benito_Yucra/detectores/detector_xss.py,sha256=66V_xuxNOZEwluvWOT4-6pk5MJ3zWE1IwcVkBl7MZSg,719
12
12
  GuardianUnivalle_Benito_Yucra/middleware_web/middleware_web.py,sha256=23pLLYqliUoMrIC6ZEwz3hKXeDjWfHSm9vYPWGmDDik,495
13
13
  GuardianUnivalle_Benito_Yucra/mitigacion/limitador_peticion.py,sha256=ipMOebYhql-6mSyHs0ddYXOcXq9w8P_IXLlpiIqGncw,246
14
14
  GuardianUnivalle_Benito_Yucra/mitigacion/lista_bloqueo.py,sha256=6AYWII4mrmwCLHCvGTyoBxR4Oasr4raSHpFbVjqn7d8,193
15
15
  GuardianUnivalle_Benito_Yucra/puntuacion/puntuacion_amenaza.py,sha256=Wx5XfcII4oweLvZsTBEJ7kUc9pMpP5-36RfI5C5KJXo,561
16
- guardianunivalle_benito_yucra-0.1.13.dist-info/licenses/LICENSE,sha256=5e4IdL542v1E8Ft0A24GZjrxZeTsVK7XrS3mZEUhPtM,37
17
- guardianunivalle_benito_yucra-0.1.13.dist-info/METADATA,sha256=tiFV5DaY10YDhl93panqR-ZXQ9XNCVsN6ckOGavSZm0,1893
18
- guardianunivalle_benito_yucra-0.1.13.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
19
- guardianunivalle_benito_yucra-0.1.13.dist-info/top_level.txt,sha256=HTWfZM64WAV_QYr5cnXnLuabQt92dvlxqlR3pCwpbDQ,30
20
- guardianunivalle_benito_yucra-0.1.13.dist-info/RECORD,,
16
+ guardianunivalle_benito_yucra-0.1.14.dist-info/licenses/LICENSE,sha256=5e4IdL542v1E8Ft0A24GZjrxZeTsVK7XrS3mZEUhPtM,37
17
+ guardianunivalle_benito_yucra-0.1.14.dist-info/METADATA,sha256=IkoT6t0h5mzecBQ9UMsrp0_5qt5ny89AGM8ey2IHXYc,1893
18
+ guardianunivalle_benito_yucra-0.1.14.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
19
+ guardianunivalle_benito_yucra-0.1.14.dist-info/top_level.txt,sha256=HTWfZM64WAV_QYr5cnXnLuabQt92dvlxqlR3pCwpbDQ,30
20
+ guardianunivalle_benito_yucra-0.1.14.dist-info/RECORD,,