Cómo resolver la falsificación de solicitudes entre sitios
Aquí hay dos opciones como referencia:
Opción 1: Cada solicitud lleva un parámetro aleatorio generado por el servidor. Luego, en el lado del servidor, si el parámetro es diferente del número aleatorio emitido, se puede considerar que alguien está falsificando una solicitud. Porque el atacante no tiene forma de saber qué tipo de número aleatorio necesita la solicitud http para este ataque para que sea efectiva. Opción 2: El principal factor determinante para el éxito de la falsificación entre dominios es que la página del atacante y la página de destino que se abrirá más tarde comparten información de la sesión. Después de que la víctima inicia sesión, la página del atacante transporta automáticamente información de sesión legítima a través de solicitudes ajax a los servicios clave del sitio web atacado. Sin embargo, de acuerdo con la misma política de origen de JavaScript, la ventana con el nombre de dominio A no puede obtener ninguna información en la ventana con el nombre de dominio B, sin importar cómo se abra B. En base a esto, podemos agregar un parámetro sessionId a cada enlace comercial que se protegerá en el cliente. Este parámetro se puede obtener de la cookie a través de js. Luego, obtenga este parámetro en el lado del servidor y compárelo con el ID de sesión real. Si es diferente, la solicitud se considera falsificada. Porque la ventana del atacante no puede obtener este ID de sesión desde la ventana del sitio web atacado. Implementación de la Opción 2: Defina un filtro y compare el ID de sesión pasado por la página con el ID de sesión real. Si son iguales, defina el filtro
Agregue el parámetro ID de sesión al realizar la solicitud
.