Red de conocimiento informático - Aprendizaje de programación - Csrf en formato json

Csrf en formato json

Generalmente existen las siguientes soluciones de defensa:

1) Verificación de la operación del usuario. Al enviar datos, deberá ingresar un código de verificación.

2) Solicitar verificación de fuente y verificar el recomendador de la fuente solicitada.

3) Verificación de tokens de formulario

Actualmente, la defensa constante de la industria contra CSRF es el uso de tokens (tokens anti-CSRF).

El valor de este token debe ser aleatorio e impredecible. Debido a la existencia del token, el atacante ya no puede crear solicitudes con tokens legítimos para implementar ataques CSRF. Además, cuando utilice Token, preste atención a la confidencialidad del Token, intente cambiar las operaciones confidenciales de GET a POST y envíelas en forma de formulario o AJAX para evitar fugas de Token.

Ejemplo:

Paso 1: El usuario accede a la página del formulario.

Paso 2: El servidor genera un token y lo coloca en la sesión del usuario o en la cookie del navegador.

Paso 3: agregue el parámetro token al formulario de la página.

Paso 4: Después de que el usuario envía la solicitud, el servidor verifica si el token en el formulario es consistente con el token (o las cookies) en la sesión del usuario, lo cual es una solicitud legal; de lo contrario, es una petición ilegal.

4) Bajo la premisa de separar el front-end y el back-end (como usar ajax para enviar datos), puede agregar un atributo SameSite a la cookie para marcar qué cookie solo se usa como un mismo sitio. cookie (es decir, las cookies propias no pueden ser cookies de terceros). Dado que no se puede utilizar como cookie de terceros, cuando otros sitios web inician solicitudes de terceros, el sitio web de terceros no puede recibir la cookie clave marcada y el procesamiento de autenticación posterior será fácil. No es necesario administrarlos durante el ciclo de vida del token, y no hay necesidad de preocuparse de que el Referer se pierda o sea manipulado en el medio.

SameStie tiene dos valores: estricto y flexible:

SameSite=Strict En modo estricto, las cookies marcadas con SameSite=Strict se utilizarán bajo cualquier circunstancia (incluidas solicitudes asincrónicas y solicitudes sincrónicas). Ninguna puede utilizarse como cookies de terceros.

SameSite=Modo suelto Lax, en el caso de solicitudes asincrónicas y saltos de envío de formularios, las cookies marcadas con SameSite=Lax no se pueden utilizar como cookies de terceros.