Supongamos que mi sitio no tiene el concepto de una cuenta de usuario ...
Entonces, ¿es aplicable un ataque de clickjacking a mi sitio?
Aunque no hay cuentas, si existe un concepto de sesiones de usuario, es posible que se aplique Clickjacking. Todo depende de lo que se almacena a nivel de sesión.
La mejor manera de pensar esto es que si su sitio recuerda el estado a nivel de sesión y no está configurando X-Frame-Options para evitar el enmarcado, entonces un atacante podría engañar a un usuario para que envíe esta información de estado para ejecutar una acción.
El otro requisito sería un elemento seleccionable en algún lugar de su sitio, generalmente un botón, que no requiera ninguna entrada en la página, excepto el clic.
El clickjacking es una especie de "manera de eludir" la protección CSRF en páginas donde no se requiere la participación del usuario para enviarlas.
Un ejemplo:
- El usuario agrega un "widget" a su cesta en su sitio.
- El usuario va al proceso de pago e ingresa su información personal y los detalles de la tarjeta.
- Esta información se almacena del lado del servidor en la sesión del usuario, identificada a través de un token aleatorio que se almacena en una cookie.
- El usuario es redirigido a una página de confirmación para que pueda verificar sus detalles antes de enviar el pedido: una solicitud GET para
example.com/confirm.php
muestra su pedido y puede hacer clic en el botón Enviar para completar su pedido y enviar un formulario vacío ( excepto por un token CSRF) que resulta en una solicitud POST a complete.php
.
Ahora un atacante podría encuadrar la página confirm.php
y mostrar otro botón en la parte superior para que cuando el usuario haga clic en el botón, envíe su pedido a su sitio. Tal vez esto podría combinarse con una vulnerabilidad CSRF en otro lugar para agregar elementos a la canasta de un usuario, y podría ejecutarse en un punto en el que se sepa que la sesión está completa (tal vez el atacante haya ganado el control de uno de los sitios del anunciante que se muestran después de la primera verificación del usuario y esta vulnerabilidad les permite volver a hacerlo con un elemento elegido por el atacante).
Entonces, sí, su sitio podría ser vulnerable y depende de los detalles de implementación específicos y del modelo de negocio de su sitio para ver si representa una amenaza real o no.