Ir al contenido
angel.library

Ataques web comunes — cómo ocurren y cómo evitarlos

AtaqueCómo ocurreDefensa principal
XSSinput no confiable termina como HTML o script ejecutableescape por contexto, sanitización y CSP defensiva
SQL/command injectiondatos se concatenan en una consulta o comandoparámetros, APIs seguras y mínimo privilegio
CSRFel navegador envía cookies a una acción iniciada desde otro sitioSameSite, token/origin checks y métodos correctos
SSRFel servidor solicita una URL elegida por el atacanteallowlist, bloquear redes internas y validar redirects/DNS
Path traversaluna ruta manipulada escapa del directorio permitidoids opacos, normalización y raíz fija
Upload maliciosocontenido, tamaño o nombre abusa del servidorlímites, detección real de tipo, storage aislado y no ejecutar

Un comentario, query param o nombre de archivo puede alcanzar innerHTML, set:html o una template insegura. Prefiere text nodes y escaping automático. Si necesitas HTML enriquecido, sanitízalo con una política explícita. CSP reduce impacto, pero no sustituye la sanitización.

Validar que un id sea numérico ayuda, pero la defensa decisiva es no construir el intérprete con strings. Queries parametrizadas separan código y datos. Evita pasar input a shell; si es inevitable, usa una API sin shell y argumentos separados.

No basta comprobar que la URL empieza por https. Un dominio puede redirigir o resolver a localhost/metadata interna. Revalida destino tras resolución y redirects, limita protocolos, puertos, tamaño y tiempo, y aísla la red del worker.

Picos de 403/429, payloads con tags o metacaracteres, acceso a rutas internas, uploads atípicos y errores de parser deben quedar en logs estructurados sin almacenar secretos. Alerta por patrón y contexto, no por cada request aislada.

Si el navegador envía la cookie automáticamente, un sitio externo puede intentar una mutación aunque no pueda leer la respuesta. Usa SameSite apropiado, valida Origin o Referer cuando sea posible y un token CSRF para operaciones sensibles. No confundas CORS con CSRF: CORS controla lectura desde otro origen, no evita que se envíe la solicitud.

Los ataques no siempre son técnicamente complejos. Un atacante puede repetir un endpoint válido para enviar miles de correos, iniciar muchas recuperaciones de contraseña o consumir una API de pago. Aplica límites por identidad, IP, recurso y costo; usa idempotency keys cuando repetir la operación no deba duplicarla.

Guarda uploads fuera del directorio público o detrás de un servicio que no los ejecute, genera un nombre propio y valida tamaño, MIME real y dimensiones. Para descargas, usa un identificador que resuelva a una ruta permitida y verifica que la ruta normalizada siga dentro de la raíz. Nunca construyas la ruta final con un nombre de archivo sin validar.

Conserva suficiente contexto para investigar: usuario o request id seudonimizado, ruta, resultado, latencia y regla activada. No registres el payload completo si puede contener contraseñas o PII. Cuando confirmes un incidente, revoca sesiones, rota secretos, preserva evidencia y agrega una prueba que evite la regresión.