Los navegadores generalmente incluyen protección contra el clicking jacking para sus ventanas emergentes internas . Por ejemplo, para evitar que abra accidentalmente un archivo descargado sin darse cuenta de lo que está haciendo.
Sin embargo, en el escenario que usted describe, la responsabilidad de la protección está en el sitio donde se encuentra el botón Permitir acceso. (en este caso, Google) No hay una solución 100% a prueba de usuario de fool . Entonces, desafortunadamente, parte de esto tiene que ser una iniciativa general contra el phishing. (Google intenta crear una base de datos de sitios maliciosos, pero este es un sistema reaccionario).
La forma más simple de hacer click-jacking es, por supuesto, la página navegación , o una ventana emergente lisa activada por el primero de los dos clics. Los bloqueadores de elementos emergentes no surten efecto cuando el elemento emergente se activa directamente con un clic del usuario y, por supuesto, los bloqueadores de elementos emergentes no detienen la navegación simple.
¿Hay alguna forma en que un sitio pueda protegerse contra él?
-
¿Google incluye un tiempo mínimo antes de que el botón de aprobación comience a funcionar?
-
Sucede que la página en Google podría no cargarse lo suficientemente rápido para detectar el segundo clic.
La técnica pop-under es una forma inteligente de asegurarse de que la página se haya cargado antes de tiempo.
- Haz que el usuario haga clic en algo.
- Abre la página Permitir, e inmediatamente llama a
self.focus()
trayendo el sitio malicioso al frente.
- En el primer clic,
popup.focus()
para ponerlo al frente, de modo que el segundo clic toque Permitir.
Ese es el escenario que describiste, pero en realidad no funciona (afortunadamente) debido a la Política del mismo origen, lo que evita que el sitio malicioso llame a .focus()
si la ventana emergente está en un sitio diferente.
Desafortunadamente , lo siguiente funcionaría
- Haz que el usuario haga clic en algo.
- Muestra un 'popup malicioso'.
- Haz que el usuario haga clic en otra cosa.
- Abre la página Permitir, e inmediatamente llama a
self.focus()
trayendo 'popup malicioso' al frente.
- En el primer clic,
self.close()
para deshacerse de la "ventana emergente maliciosa", y luego el segundo clic presionará Permitir.
¿Hay alguna forma en que un sitio pueda protegerse contra él?
-
Una cosa realmente fácil es verificar history.length == 1
, y si ese es el caso, Google sabe que se abrió a través de una ventana emergente. Esto no es una mitigación integral.
-
Google puede usar la API de visibilidad y / o los eventos self.onfocus
y self.onblur
para requerir un tiempo mínimo antes de que el clic entre en vigencia. Creo que esto puede ser una protección integral. Pero está sujeto a la compatibilidad del navegador.
Puedo imaginar un escenario más complejo en el que el logotipo de Google está oculto por otras ventanas emergentes, lo que engaña al usuario.
¿Hay algo que un usuario ... pueda hacer para evitar esto?
Asegúrese de no hacer doble clic en un sitio en el que no confíe. De hecho, manténgase alejado de cualquier sitio sospechoso. ☺