Deseamos mostrarte la mejor información que hemos encontrado online. Deseamos que te sea de ayuda y si quieres comentarnos algo que nos pueda ayudar a mejorar hazlo con total libertad.
- Introducción
- Excluyendo URI
- Token X-CSRF
- Token X-XSRF
Introducción
Laravel facilita la protección de su aplicación de falsificación de solicitud entre sitios (CSRF) ataques. 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.
Laravel genera automáticamente un “token” CSRF para cada sesión de usuario activa administrada por la aplicación. Este token se usa para verificar que el usuario autenticado es el que realmente hace las solicitudes a la aplicación.
Siempre que defina un formulario HTML en su aplicación, debe incluir un campo de token CSRF oculto en el formulario para que el middleware de protección CSRF pueda validar la solicitud. Puede utilizar el @csrf
Directiva Blade para generar el campo token:
<form method="POST" action="/profile"> @csrf ...</form>
El VerifyCsrfToken
middleware, que se incluye en el web
grupo de middleware, verificará automáticamente que el token en la entrada de la solicitud coincide con el token almacenado en la sesión.
Tokens CSRF y JavaScript
Al crear aplicaciones impulsadas por 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 resources/js/bootstrap.js
el archivo envía automáticamente un X-XSRF-TOKEN
encabezado usando el valor del cifrado XSRF-TOKEN
Galleta. Si no está utilizando esta biblioteca, deberá configurar manualmente este comportamiento para su aplicación.
Excluir URI de la protección CSRF
A veces, es posible que desee excluir un conjunto de URI de la protección CSRF. Por ejemplo, si está utilizando Raya para procesar pagos y están utilizando su sistema de webhook, deberá excluir la ruta del controlador de webhook de Stripe de la protección CSRF, ya que Stripe no sabrá qué token CSRF enviar a sus rutas.
Por lo general, debe colocar este tipo de rutas fuera del web
grupo de middleware que el RouteServiceProvider
se aplica a todas las rutas en el routes/web.php
Archivo. Sin embargo, también puede excluir las rutas agregando sus URI al $except
propiedad de la VerifyCsrfToken
middleware:
namespaceAppHttpMiddleware;useIlluminateFoundationHttpMiddlewareVerifyCsrfTokenas Middleware;classVerifyCsrfTokenextendsMiddleware/**
* The URIs that should be excluded from CSRF verification.
*
* @var array
*/protected$except=['stripe/*','http://example.com/foo/bar','http://example.com/foo/*',];
El middleware CSRF se desactiva automáticamente al ejecutar pruebas.
X-CSRF-TOKEN
Además de comprobar el token CSRF como parámetro POST, el VerifyCsrfToken
El middleware también comprobará el X-CSRF-TOKEN
encabezado de solicitud. Podría, por ejemplo, almacenar el token en un HTML meta
etiqueta:
<meta name="csrf-token" content=" csrf_token() ">
Luego, una vez que haya creado el meta
etiqueta, puede indicar a una biblioteca como jQuery que agregue automáticamente el token a todos los encabezados de solicitud. Esto proporciona una protección CSRF simple y conveniente para sus aplicaciones basadas en AJAX:
$.ajaxSetup( headers:'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content'));
X-XSRF-TOKEN
Laravel almacena el token CSRF actual en un cifrado XSRF-TOKEN
cookie que se incluye con cada respuesta generada por el marco. Puede utilizar el valor de la cookie para configurar el X-XSRF-TOKEN
encabezado de solicitud.
Esta cookie se envía principalmente para su conveniencia, ya que algunos marcos y bibliotecas de JavaScript, como Angular y Axios, colocan automáticamente su valor en el X-XSRF-TOKEN
encabezado en solicitudes del mismo origen.
Por defecto, el
resources/js/bootstrap.js
El archivo incluye la biblioteca HTTP de Axios que se lo enviará automáticamente.
Comentarios y valoraciones
Agradecemos que quieras añadir valor a nuestro contenido contribuyendo tu veteranía en las interpretaciones.