Concepto
CSRF significa «Cross-Site Request Forgery» (Falsificación de Petición en Sitios Cruzados). Es un tipo de ataque malicioso donde comandos no autorizados son transmitidos por un usuario en el que el sitio web confía.
La protección CSRF en Laravel es un mecanismo de seguridad diseñado para prevenir estos ataques. Funciona de la siguiente manera:
- Generación de Token: Laravel genera automáticamente un «token» CSRF único para cada sesión de usuario activa.
- Inclusión en Formularios: Este token se incluye como un campo oculto en todos los formularios generados por Laravel.
- Verificación: Cuando se envía un formulario, Laravel verifica que el token enviado coincida con el almacenado en la sesión del usuario.
- Protección: Si los tokens no coinciden, la solicitud es rechazada, protegiendo así al usuario de posibles ataques CSRF.
En esencia, la protección CSRF asegura que cada solicitud POST, PUT, PATCH o DELETE que llega a tu aplicación Laravel sea iniciada por tu propio sitio web y no por un sitio malicioso.
Ejemplo Simplificado
Imagina que tienes un formulario de transferencia de dinero en tu sitio bancario. Sin protección CSRF, un atacante podría crear un sitio malicioso que envíe una solicitud de transferencia a tu banco sin tu conocimiento. Con la protección CSRF de Laravel, estas solicitudes no autorizadas serían bloqueadas porque no tendrían el token CSRF correcto.
Implementación en Laravel
Laravel implementa esta protección automáticamente para la mayoría de las rutas web. Solo necesitas incluir el token CSRF en tus formularios, lo cual se hace fácilmente con la directiva Blade @csrf
:
<form method="POST" action="/ejemplo">
@csrf
<!-- Campos del formulario -->
</form>
Esta simple directiva añade un campo oculto con el token CSRF, asegurando que tu formulario esté protegido contra ataques CSRF.
Detalles del curso
- Clases 6
- Cuestionario 0
- Duración 10 semanas
- Nivel de habilidad Todos los niveles
- Idioma Inglés
- Estudiantes 0
- Certificado No
- Evaluaciones Si