Red de conocimiento del abogados - Ley de patentes - ¿Qué métodos pueden prevenir eficazmente los ataques CSRF?

¿Qué métodos pueden prevenir eficazmente los ataques CSRF?

CSRF, escrito como falsificación de solicitudes entre sitios, también se conoce como ataque con un solo clic o sesión montada. El nombre chino es falsificación de solicitudes entre sitios. En términos generales, el atacante falsifica la solicitud del navegador del usuario y la envía a un sitio web que el usuario ha autenticado para visitar, de modo que el sitio web de destino recibe y piensa erróneamente que es la operación real del usuario y ejecuta el comando. Comúnmente utilizado para robar cuentas, transferir dinero, enviar mensajes falsos, etc.

El atacante aprovecha la vulnerabilidad de verificación de solicitudes del sitio web para implementar dicho ataque. El sitio web puede confirmar que la solicitud se origina en el navegador del usuario, pero no puede verificar si se origina en la verdadera intención del usuario.

¿Cuáles son los métodos de prevención para ataques CSRF?

Primero, verifique el campo Referer HTTP

El campo Referer en el encabezado HTTP registra la dirección de origen del Solicitud HTTP. En circunstancias normales, la solicitud para acceder a una página con seguridad restringida proviene del mismo sitio web y, si un hacker quiere implementar un ataque CSRF en ella, generalmente solo puede construir la solicitud en su propio sitio web. Por lo tanto, los ataques CSRF se pueden defender verificando el valor del Referer.

En segundo lugar, use el código de verificación

Agregue el código de verificación a las páginas de operaciones clave. Después de recibir la solicitud, el fondo puede juzgar el código de verificación para evitar CSRF. Pero este método no es muy fácil de usar.

En tercer lugar, agregue el token en la dirección de solicitud y verifíquelo.

La razón por la cual el ataque CSRF tiene éxito es que el pirata informático puede falsificar completamente la solicitud del usuario y toda la verificación del usuario. La información de la solicitud está presente en la cookie, por lo que los piratas informáticos pueden utilizar directamente las propias cookies del usuario para pasar la verificación de seguridad sin conocer la información de verificación. La clave para resistir CSRF es incluir información en la solicitud que los piratas informáticos no puedan falsificar y que esa información no exista en la cookie. Puede agregar un token generado aleatoriamente como parámetro a la solicitud HTTP y crear un interceptor en el lado del servidor para verificar el token. Si no hay ningún token en la solicitud o el contenido del token es incorrecto, se considera que puede serlo. un ataque CSRF y la solicitud será rechazada. Este método es más seguro que verificar el Referer. El token se puede generar después de que el usuario inicia sesión y se coloca en la sesión. Luego, el token se retira de la sesión en cada solicitud y se compara con el token en la solicitud. La dificultad radica en cómo agregar el token a la solicitud en forma de parámetros.

Para las solicitudes de obtención, el token se agregará a la dirección de la solicitud, de modo que la URL será: http://url?csrftoken=tokenvalue.

Para solicitudes de publicación, agregue al final del formulario, de modo que el token se agregue a la solicitud como parámetro .

Cuarto, personalice los atributos en el encabezado HTTP y verifíquelos.

Este método también usa tokens para la verificación. A diferencia del método anterior, aquí no se usa el token. como parámetro en la solicitud HTTP, colóquelo en un atributo personalizado en el encabezado HTTP. A través de la clase XMLHttpRequest, puede agregar el atributo de encabezado HTTP csrftoken a todas las solicitudes de este tipo a la vez y ponerle el valor del token. Esto resuelve el inconveniente de agregar tokens a la solicitud en el método anterior; al mismo tiempo, la dirección solicitada a través de XMLHttpRequest no se registrará en la barra de direcciones del navegador y no hay necesidad de preocuparse de que el token se filtre a otros sitios web; a través del Referidor.