

Laravel facilita la protección de su aplicación de los ataques de falsificación de solicitudes entre sitios (CSRF).
Las falsificaciones de solicitudes entre sitios son un tipo de exploit malicioso mediante el cual se ejecutan comandos no autorizados en nombre de un usuario autenticado.
Lo que hace Laravel es generar automáticamente un «token» CSRF para cada sesión de usuario activa, manejada por la aplicación.
Este token es usado para verificar que el usuario autenticado es quien en realidad está haciendo la petición a la aplicación.
En cualquier momento que definas un formulario HTML en tu aplicación, debes incluir un campo de token CSRF en el formulario con el propósito de que el middleware para protección CSRF pueda validar la solicitud.
Puedes usar la directiva de Blade @csrf
para generar el campo de token:PHP
123456 | <form method=»POST» action=»/profile»> @csrf …</form> |
El middleware
VerifyCsrfToken
, el cual es incluido en el grupo de middleware web
, verificará automáticamente que el token en el campo de la solicitud coincida con el almacenado en la sesión.
Tokens CSRF y JavaScript
Al crear aplicaciones basadas en JavaScript, es conveniente que su biblioteca HTTP de JavaScript adjunte automáticamente el token CSRF a cada solicitud saliente.
De forma predeterminada, la biblioteca HTTP de Axios proporcionada en el archivo resources / js / bootstrap.js envía automáticamente un encabezado X-XSRF-TOKEN utilizando el valor de la cookie XSRF-TOKEN cifrada.
Si no está utilizando esta biblioteca, deberá configurar manualmente este comportamiento para su aplicación.
X-XSRF-TOKEN
Laravel almacena el token CSRF actual en una cookie XSRF-TOKEN cifrada que se incluye con cada respuesta generada por el marco. Puede usar el valor de la cookie para configurar el encabezado de solicitud X-XSRF-TOKEN.
Esta cookie se envía principalmente como una conveniencia, ya que algunos marcos y bibliotecas de JavaScript, como Angular y Axios, colocan automáticamente su valor en el encabezado X-XSRF-TOKEN en solicitudes del mismo origen.