Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Protección CSRF
Introducción
Exluyendo URIs
X-CSRF-Token
X-XSRF-Token
Introducción
Laravel hace fácil la protección de su aplicación de ataques cross-site request forgery (CSRF).
Solicitudes de falsificación a través de sitios Cross-site request forgeries son un tipo de ataques
maliciosos a través de los cuales comandos no autorizados son ejecutados en nombre de un usuario
autenticado.
Laravel genera automáticamente una prueba token CSRF para cada sesión de usuario activo
administrado por la aplicación. Esta prueba se utiliza para verificar que el usuario autenticado es el que
realmente hace las peticiones a la aplicación.
Cada vez que defina un formulario HTML en su aplicación usted debería incluír un campo prueba CSRF
oculto en el formulario para que la protección middleware pueda validar la peticición. Usted puede
utilizar la función de ayuda csrf_field para generar el campo con la prueba:
...
</form>
A veces puede desear excluír un conjunto de URIs de la protección CSRF. Por ejemplo, si usted está
usando Stripe para procesar pagos y está utilizando su sistema de enganche web, necesitará exluír la
ruta del manejador del enganche web de la protección CSRF ya que Stripe no conocerá la prueba
CRSF que debe envíar a sus rutas.
Normalmente, usted debería situar este tipo de cosas en rutas fuera de su grupo middleware web que
el RouteServiceProvider aplica a todas las rutas en el fichero routes/web.php . No obstante, usted puede
también excluír las rutas agregandolas a la propiedad $except del middleware VerifyCsrfToken :
<?php
namespace App\Http\Middleware;
*
* @var array
*/
protected $except = [
'stripe/*',
];
}
X-CSRF-TOKEN
Además para comprobar la prueba CSRF como parametro POST
el middleware VerifyCsrfToken comprobará también el X-CSRF-TOKEN para las cabeceras de las peticiones.
Podría, por ejemplo, almacenar la prueba en una meta etiqueta HTML:
Entonces, una vez haya creado la meta etiqueta, usted puede indicar a una librería como Jquery como
agregar automáticamente el token a todas las cabeceras de las peticiones. Esto proporciona una
protección CSRF simple y conveniente para sus aplicaciones basadas en AJAX:
$.ajaxSetup({
headers: {
https://docs.laraveles.com/docs/5.5/csrf 2/3
26/10/2018 Laraveles – Documentación de Laravel en español
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
X-XSRF-TOKEN
Laravel almacena la prueba CSRF en la cookie XSRF-TOKEN que es incluída con cada respuesta generada
por el framework. Puede utilizar la cookiepara establecer la cabecera de la petición X-XSRF-TOKEN .
https://docs.laraveles.com/docs/5.5/csrf 3/3