Cómo omitir la validación CSRF para ciertas solicitudes en Magento 2

Estás leyendo la publicación: Cómo omitir la validación CSRF para ciertas solicitudes en Magento 2

Según la Wikipedia,

La falsificación de solicitudes entre sitios, también conocida como ataque con un clic o conducción de sesión o XSRF, es un tipo de explotación maliciosa de un sitio web donde se transmiten comandos no autorizados de un usuario en el que confía la aplicación web.

En términos más simples, se engaña a un usuario para que envíe una solicitud web que no quería, en un ataque CSRF.

Magento 2 permite la protección contra ataques CSRF por motivos de seguridad. Sin embargo, hay ciertos escenarios en los que es necesario omitir la validación CSRF para ciertas solicitudes en Magento 2.

Por ejemplo, tuve que implementar una función en la que el usuario es redirigido a la página de inicio después de un pago exitoso en un método de pago personalizado. Pero el problema era el error “Clave de formulario no válida”.

Este error ocurre cuando el token CSRF ha caducado o el token se implementó incorrectamente. Para resolver el error “Clave de formulario no válida”, siga el siguiente método:

Método para omitir la validación CSRF para ciertas solicitudes en Magento 2:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

dieciséis

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

espacio de nombres Proveedor\Extensión\Controlador\Pago;

use Magento\Framework\App\Action;

use Magento\Framework\App\CsrfAwareActionInterface;

use Magento\Framework\App\Request\InvalidRequestException;

use Magento\Framework\App\RequestInterface;

La respuesta de clase extiende Action\Action implementa CsrfAwareActionInterface

{

función pública __construir(

Acción\Contexto $contexto,

)

{

padre::__construcción($contexto);

}

función pública ejecutar ()

{

}

función pública createCsrfValidationException(RequestInterface $request): ?InvalidRequestException

{

devolver nulo;

}

función pública validarForCsrf(RequestInterface $solicitud): ?bool

{

devolver verdadero;

}

}

🔥 Recomendado:  Cómo ganar $ 2000 al mes (opciones en línea y fuera de línea en 2023)

Eso es todo.

¿Alguna duda sobre el tema? Siéntase libre de mencionarlos en la sección de Comentarios a continuación. Estaré encantado de ayudarte lo antes posible.

Comparta la solución con la comunidad de Magento a través de las redes sociales.

Gracias.