22 - 🧩 CSRF y mejores prácticas de seguridad
Aprende cómo proteger tu aplicación Next.js contra ataques CSRF y aplicar buenas prácticas de seguridad.
🔒 ¿Qué es CSRF?
CSRF (Cross-Site Request Forgery) es un ataque donde un sitio malicioso fuerza al navegador de un usuario autenticado a enviar solicitudes no deseadas a tu aplicación. Por ejemplo, un usuario logueado en tu app podría, sin querer, ejecutar acciones desde otro sitio.
🛡️ Prevención con tokens CSRF
Una de las formas más efectivas de protegerse es usar un token CSRF. Este token se genera en el servidor y se valida en cada solicitud que modifique datos.
import { randomBytes } from "crypto";
import { serialize } from "cookie";
// Generar token CSRF y guardarlo en cookie
export function setCSRFToken(res) {
const token = randomBytes(32).toString("hex");
const cookie = serialize("csrfToken", token, {
httpOnly: true,
secure: process.env.NODE_ENV === "production",
sameSite: "strict",
maxAge: 60 * 60, // 1 hora
path: "/",
});
res.setHeader("Set-Cookie", cookie);
return token;
}
// Validar token en requests
export function validateCSRF(req) {
const cookies = parse(req.headers.cookie || "");
const csrfToken = cookies.csrfToken;
const requestToken = req.headers["x-csrf-token"];
return csrfToken && requestToken && csrfToken === requestToken;
}
💡 Explicación:
- El token se guarda en cookie
httpOnlypara seguridad. - Se envía en encabezado
x-csrf-tokencon cada request que modifique datos. - Se compara el token enviado con el token en la cookie para validar la petición.
⚡ Mejores prácticas de seguridad en Next.js
- 🔑 Usar HTTPS en producción para cifrado de datos en tránsito.
- 🍪 Configurar cookies con
httpOnly,secureysameSite. - 🛡️ Implementar autenticación robusta (NextAuth.js, JWT, OAuth).
- 🔒 Validar todas las entradas del usuario para prevenir inyecciones.
- 🚫 Evitar exponer información sensible en el cliente.
- 🧩 Proteger rutas críticas con middleware y validación de tokens.
- 📦 Mantener dependencias actualizadas para reducir vulnerabilidades.
✅ Resumen
- CSRF permite ataques desde otros sitios aprovechando la sesión activa del usuario.
- Usar tokens CSRF y cookies seguras reduce significativamente el riesgo.
- Aplicar buenas prácticas de seguridad garantiza una app más confiable y robusta.
0 Comentarios
Si desea contactar comigo, lo puede hacer atravez deste formulario gracias