SEGURIDAD EN APLICACIONES WEB: CONCEPTOS Y BUENAS PRÁCTICAS

  • reCAPTCHA: es un sistema de seguridad creado por Google para distinguir si quien interactúa en una web es una persona real o un programa automático. Se usa para proteger sitios web de Spam, ataques automatizados (como creación masiva de cuentas) y el abuso de servicios online.
  • CSRF Token: Es una medida de seguridad que protege a las aplicaciones web contra un tipo de ataque llamado Cross-Site Request Forgery o CSRF. El ataque CSRF ocurre cuando se está logueado en una web (por ejemplo, tu banco), se visita otra página maliciosa y esa página intenta hacer una acción en la web donde ya estás autenticado (sin que te des cuenta).
  • Helmet: Es una librería de seguridad para aplicaciones web en NodeJS (especialmente con Express.js) que ayuda a proteger la app configurando automáticamente cabeceras HTTP seguras.Sirve para reducir riesgos comunes en la web como la Cross Site Scripting o XSS, clickjacking, tipo de ataque web en el que un usuario es engañado para hacer clic en algo diferente a lo que cree, normalmente usando capas invisibles o elementos ocultos. Exposición de información sensible, ataques de tipo MIME sniffing,
  • Content Security Policy o SCP: Medida de seguridad en la web que permite a un sitio controlar qué recursos puede cargar el navegador (scripts, estilos, imágenes, etc.), ayudando a prevenir ataques como Cross Site Scripting o XSS.
  • Validación en frontend + backend: Nunca confíes solo en el cliente. Siempre validar en el frontend y en el backend.
  • Cookies seguras (HttpOnly + Secure): Cookies que incluyen configuraciones especiales para proteger la información del usuario cuando navega por una web.
    • Secure Solo se envía a través de conexiones HTTPS Evita que alguien intercepte la cookie en redes inseguras
    • HttpOnly No puede ser accedida por JavaScript Protege contra ataques como Cross-Site Scripting
    • SameSite:Controla si la cookie se envía en peticiones desde otros sitios:
      • Strict: solo en el mismo sitio (máxima seguridad).
      • Lax: permite algunas navegaciones externas.
      • None: se envía siempre (requiere Secure).