Skip to content

Mejorar seguridad en registro y autenticación de usuarios #20

@jgm847

Description

@jgm847

📄 Descripción

Se deben implementar mejoras de seguridad en los procesos de registro y autenticación de usuarios en el backend de MagicVS, con el objetivo de proteger las credenciales, prevenir ataques comunes y garantizar buenas prácticas de seguridad.

Actualmente el sistema permite el registro y login básico, pero es necesario reforzar la seguridad antes de avanzar con nuevas funcionalidades.


🎯 Objetivos

  • Proteger correctamente las contraseñas de los usuarios
  • Validar y sanitizar los datos de entrada
  • Evitar ataques comunes (fuerza bruta, inyección, etc.)
  • Mejorar la gestión de autenticación
  • Asegurar buenas prácticas en el manejo de usuarios

🛠️ Alcance

Incluye:

  • Backend (Spring Boot):
    • Seguridad en registro y login
    • Validaciones
    • Configuración de autenticación

No incluye:

  • Autenticación con terceros (Google, OAuth, etc.)
  • Gestión avanzada de roles/permisos (se podrá hacer en otro issue)

🛠️ Tareas

🔐 Seguridad de contraseñas

  • Implementar hash de contraseñas con BCrypt
  • Evitar almacenar contraseñas en texto plano
  • Configurar fuerza del hash (salt automático)

✅ Validación de datos

  • Validar formato de email
  • Validar longitud mínima de contraseña
  • Validar username (longitud, caracteres permitidos)
  • Evitar valores nulos o vacíos
  • Sanitizar inputs para prevenir inyección

🚫 Protección contra ataques

  • Limitar intentos de login (rate limiting básico o contador)
  • Manejar errores sin revelar información sensible
  • Evitar distinguir entre "usuario no existe" y "contraseña incorrecta"

🔑 Autenticación

  • Implementar o revisar uso de JWT
  • Configurar expiración de tokens
  • Asegurar firma segura del token
  • No exponer información sensible en el payload

🛡️ Buenas prácticas

  • No devolver contraseña ni hashes en respuestas
  • Usar DTOs en lugar de entidades directamente
  • Manejar correctamente excepciones de autenticación
  • Configurar CORS de forma segura

📂 Estructura esperada

  • auth/
    • AuthController
    • AuthService
    • dto/
  • config/
    • SecurityConfig
  • user/
    • User

✅ Criterios de aceptación

  • Las contraseñas se almacenan de forma segura (hash)
  • No es posible registrar datos inválidos
  • El login no expone información sensible
  • Se limita el número de intentos fallidos
  • Se utilizan tokens seguros para autenticación
  • No se devuelven datos sensibles en ninguna respuesta

📌 Notas

  • Usar Spring Security para facilitar la implementación

  • Se recomienda usar BCryptPasswordEncoder

  • Preparar el sistema para futuras mejoras como:

    • roles (admin/user)
    • refresh tokens
    • verificación por email
  • Este issue es clave antes de exponer la aplicación públicamente

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions