Requisitos previos:
Antes de comenzar este tutorial, debe asegurarse de que el laravel esté instalado y funcione correctamente en el sistema. He instalado las siguientes aplicaciones en el sistema para hacer este tutorial.
Cómo implementar CSRF:
La protección CSRF se puede implementar en Laravel utilizando cualquier formulario HTML con una forma oculta de token CSRF y la solicitud del usuario se valida utilizando CSRF VerifyCSRFTOWAR MEDILWARE. Cualquiera de las siguientes opciones se puede usar para generar un token CSRF.
A. @csrf
Es una directiva de cuchilla generar un campo de token que se utilizará para la verificación. Genera un campo de entrada oculto.
B. csrf_token ()
Esta función se puede usar en la metaetaje y en el campo de entrada oculto del formulario HTML. Genera una cadena aleatoria como un token CSRF.
C. csrf_field ()
Esta función crea un campo oculto para la forma HTML donde se usa y genera token CSRF.
Los usos de las opciones anteriores se muestran utilizando formularios HTML en la siguiente sección del tutorial.
Uso de @csrf:
Crear un archivo de vista Laravel llamado CSRF1.cuchilla.php con el siguiente código HTML donde @csrf La directiva se utiliza para generar token CSRF.
CSRF1.cuchilla.php
Agregue la siguiente ruta en el web.php archivo para cargar el archivo de vista en el navegador. Cuando el usuario dará CSRF1 Después de la URL base, entonces buscará CSRF1.cuchilla.php archivo en el vista Carpeta del proyecto Laravel.
Ruta :: ver ('/csrf1', 'csrf1');Inicie el servidor Apache y ejecute la siguiente URL desde el navegador para cargar la vista en el navegador. Aquí, laravelpro es el nombre del proyecto Laravel. También puede ejecutar el servidor de desarrollo de Laravel utilizando el comando PHP Artisan.
https: // localhost/laravelpro/public/csrf1
Si inspecciona la página, obtendrá la salida como a continuación. Aquí, un campo oculto con el valor se genera automáticamente por @csrf directiva.
Uso de csrf_token ():
Crear un archivo de vista Laravel llamado CSRF2.cuchilla.php con el siguiente código HTML donde el csrf_token () La función se usa para generar token CSRF. Esta función se usa como el valor del atributo de valor del campo oculto y se usa con dos soportes rizados.
CSRF2.cuchilla.php
Agregue la siguiente ruta en La web.php archivo para cargar el archivo de vista en el navegador. Como el primer método, cuando el usuario dará CSRF2 Después de la URL base, entonces buscará CSRF2.cuchilla.php archivo en el vista Carpeta del proyecto Laravel.
Ruta :: ver ('/csrf2', 'csrf2');Ejecute la siguiente URL desde cualquier navegador como antes para cargar el archivo de la segunda vista.
https: // localhost/laravelpro/public/csrf2
Si inspecciona la página, obtendrá la salida como a continuación. Aquí, el valor del campo oculto se genera utilizando el csrf_token () función.
Uso de csrf_field ():
Crear un archivo de vista Laravel llamado CSRF3.cuchilla.php con el siguiente código HTML donde el csrf_field () La función se usa para generar token CSRF. Esta función funciona como @csrf Directiva y no necesita agregar un campo oculto en el formulario HTML. También se usa con dos soportes rizados como csrf_token () función.
CSRF3.cuchilla.php
Agregue la siguiente ruta en La web.php archivo para cargar el archivo de vista en el navegador. Como el primer método, cuando el usuario dará CSRF3 Después de la URL base, entonces buscará CSRF3.cuchilla.php archivo en el vista Carpeta del proyecto Laravel.
Ruta :: ver ('/csrf3', 'csrf3');Ejecute la siguiente URL desde cualquier navegador como antes para cargar el archivo de la segunda vista.
https: // localhost/laravelpro/public/csrf3
Si inspecciona la página, obtendrá la salida como a continuación. Aquí, el valor del campo oculto se genera utilizando el csrf_field () función.
Los tres métodos para generar el token CSRF que se muestra arriba genera el mismo valor token para el mismo navegador. Cuando el atacante enviará cualquier solicitud para acceder al contenido de cualquier usuario autenticado que esté en línea entonces VerifyCsrftoken El middleware coincidirá con el token de solicitud y el token de sesión almacenado para validar la solicitud antes de manejar. De esta manera, el ataque CSRF se puede prevenir fácilmente en Laravel. Esta protección se puede deshabilitar del Laravel eliminando la entrada de App \ http \ middleware \ VerifyCsrftoken de $ middleware matriz desde el archivo aplicación/http/kernel.php.
Conclusión:
El acceso no autorizado puede tener un gran impacto en cualquier aplicación y dañar los datos correctamente. Por lo tanto, la protección CSRF es muy importante para asegurar cualquier aplicación donde se realicen los diferentes tipos de tareas transnacionales. Este tutorial ayudará a los desarrolladores de Laravel a conocer las formas de asegurar su aplicación utilizando la protección CSRF.