Aquí describimos las vulnerabilidades más comunes que afectan a las aplicaciones web y, para cada una, damos medidas prácticas y claras para prevenirlas. El tono es directo y pensado para exposición o material de clase.
La inyección SQL ocurre cuando un atacante mete comandos SQL maliciosos en campos de entrada (por ejemplo, login o búsqueda) y la aplicación los ejecuta sin validarlos. Con esto puede ver, cambiar o borrar datos de la base.
XSS es cuando se inyecta código (normalmente JavaScript) en páginas que otros usuarios ven. El atacante puede robar cookies, secuestrar sesiones o redirigir al usuario.
CSRF hace que, sin darse cuenta, un usuario autenticado envíe peticiones que cambian datos (por ejemplo, cambiar contraseña, hacer transferencias) aprovechando que su navegador está logueado.
Esto pasa cuando un programa escribe más datos de los que cabe en un buffer y termina sobreescribiendo memoria. En web es menos común, pero puede aparecer en componentes nativos o servicios escritos en C/C++.
Si las contraseñas no están bien protegidas, las sesiones no expiran o los tokens son predecibles, los atacantes pueden secuestrar cuentas.
Muchas brechas ocurren porque no se aplican actualizaciones a tiempo: CMS, frameworks y librerías pueden tener fallas conocidas.
Configuraciones incorrectas pueden dejar accesibles archivos que no deberían ser públicos (backups, config, uploads).
Ajustes por defecto o herramientas de administración accesibles pueden ser explotadas si no se endurece el servidor.
Si usas HTTP, los datos viajan sin cifrar y pueden ser interceptados o modificados por terceros (man-in-the-middle).
Fuerza bruta consiste en probar muchas combinaciones de contraseñas hasta adivinar la correcta. Sigue siendo efectiva si no limitas intentos.