Seguridad y despliegue en React
Una aplicación React se ejecuta en el navegador, por lo que no debe contener secretos ni confiar solo en validaciones del cliente. El despliegue consiste en compilar la aplicación y publicar archivos estáticos.
Conceptos clave
- Build: generación de archivos listos para producción.
- SPA: aplicación de una sola página.
- Variables de entorno: configuración inyectada durante build.
- XSS: ejecución de código malicioso en el navegador.
- Autenticación: identificación del usuario.
- Autorización: control de permisos.
Seguridad básica
React escapa valores interpolados por defecto.
jsx
function Comentario({ texto }) {
return <p>{texto}</p>;
}Evita usar HTML dinámico salvo que sea imprescindible.
jsx
<div dangerouslySetInnerHTML={{ __html: html }} />Variables de entorno
Las variables expuestas al frontend no son secretas. Úsalas para configuración pública, como URL de API.
txt
VITE_API_URL=https://api.example.comBuild y despliegue
bash
npm run buildEl resultado suele generarse en una carpeta como dist/ o build/, según la herramienta usada.
Rutas en SPA
Si usas React Router, el servidor debe redirigir rutas internas a index.html.
txt
/perfil -> index.html -> React Router -> PerfilBuenas prácticas
- No guardes secretos en el frontend.
- Valida permisos reales en backend.
- Usa HTTPS.
- Gestiona expiración de sesión.
- Configura fallback para rutas SPA.
- Revisa dependencias y vulnerabilidades.
- Automatiza build y despliegue.
Errores comunes
- Poner claves privadas en variables de entorno frontend.
- Confiar solo en ocultar botones para proteger acciones.
- Publicar sin probar recarga en rutas internas.
- Mostrar errores técnicos al usuario final.
- No diferenciar configuración de desarrollo y producción.
Chuleta rápida
txt
npm run build = build producción
dist/build = salida publicable
SPA fallback = index.html
Frontend env = no secreto
Backend = permisos reales