Protección de Laravel CSRF

Protección de Laravel CSRF
La forma completa de CSRF es la falsificación de solicitud de sitio cruzado. Es un tipo de ataque en línea en el que el atacante envía solicitudes como un usuario autorizado a un sistema al obtener información de acceso de un usuario en particular de ese sistema y realiza diferentes tipos de actividades maliciosas mediante el uso de la identidad de ese usuario. El impacto de este ataque depende de los privilegios de la víctima en el sistema. Si la víctima es un usuario normal, entonces solo afectará los datos personales de la víctima. Pero si la víctima es la administradora del sistema, el atacante puede dañar todo el sistema. Los usuarios de cualquier sitio web comercial, las redes sociales pueden verse afectadas por este ataque. Este ataque se puede prevenir fácilmente mediante el uso de la protección CSRF de Laravel para que el sistema sea más seguro. Laravel genera token CRSF para cada sesión de usuario activa automáticamente por la cual se otorga cualquier solicitud y aprobación al usuario autenticado para el sistema. En este tutorial se puede aplicar la protección de Laravel CSRF en la aplicación Laravel.

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.

  • Apache/2.4.41 (Ubuntu)
  • Php 7.4.3 (CLI)
  • mariadb ver 15.1
  • Marco de Laravel 7.25.0

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



Protección de CSRF



Método de protección CSRF de Laravel-1



@csrf










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



Protección de CSRF



Método de protección CSRF de Laravel-2














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



Protección de CSRF



Método de protección CSRF de Laravel-3









csrf_field ()




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.