Imagina el botón después de hacer clic en qué navegador envía una solicitud XHR http con el método GET. Características:
- después de ejecutar la solicitud, se realiza una acción sensible
- la información confidencial se envía en los parámetros GET
- Los encabezados HTTP
X-Requested-With: XMLHttpRequest
yX-CSRF-Token
con un token PRG suficientemente grande se envían y son necesarios para que la acción se ejecute
No se puede acceder a la opción - para
Copy link location
cuando se hace clic derecho en el botón ya que es un formulario.
Normalmente, XHR se usa con GET, pero aquí se usa con GET. Es la única diferencia con respecto a las solicitudes XHR normales.
¿Este diseño conduce a alguna vulnerabilidad de seguridad?
Editar: Algunos respondedores y comentaristas dicen que:
- El usuario puede copiar o marcar la URL. Sin embargo, el único lugar desde donde el usuario puede copiar la URL es el código fuente de la página, ya que esta URL no está expuesta en la barra de direcciones del navegador; haga clic derecho en el menú porque el botón es un formulario). También los parámetros son agregados a solicitud por el propio navegador para que el usuario no pueda copiar la url completa del código fuente.
- El usuario puede copiar parte de la ventana del navegador. Sin embargo, la url no está expuesta en la ventana del navegador
- Puede convertirse en parte del encabezado del Referer. Sin embargo, es XHR y no cambia la URL en el encabezado del Referente de las próximas solicitudes
Por lo tanto, la única vulnerabilidad válida parece ser que los parámetros GET pueden registrarse en los registros del servidor web (no se registrarán en el proxy debido al uso de TLS). Si esos registros son accesibles para el atacante, entonces él tendrá información confidencial.