¿Por qué se permite que una ventana secundaria cambie la ubicación de su padre?

6

Tal vez una pregunta tonta. Al abrir una nueva pestaña a través de target="_blank" , la página que se carga en esa pestaña puede establecer una nueva ubicación en la pestaña principal mediante:

window.opener.location.replace('http://www.google.com');

¿Esto no viola la política del mismo origen? Podría apuntar fácilmente esa redirección a un sitio malicioso que se parece exactamente al original.

    
pregunta mart1n 20.01.2015 - 15:24
fuente

1 respuesta

5

No creo que esto infrinja la Política del mismo origen, porque la pestaña secundaria no puede acceder a los datos en la pestaña principal ni modificar su contenido.

Este fue probablemente diseñado de esta manera para permitir que los desarrolladores web ofrezcan una mejor experiencia de usuario al tratar con múltiples ventanas.

Por otro lado, esto es definitivamente algo que un desarrollador web debe conocer y solo usa target="_blank" cuando se requiere esta funcionalidad específica.

Es fácil protegerse contra este tipo de ataques y la mayoría de los sitios web grandes (google.com, twitter.com, etc.) hacen esto abriendo enlaces en nuevas pestañas con la propiedad window.opener establecida en null.

Esto ha sido reportado como un error para el equipo de Chromium, pero fue marcado como WontFix porque no fue considerado un error:

  

El usuario decide confiar en una pestaña en particular al inspeccionar la URL y determinar el origen. En todos los casos, aquí el área de ambas pestañas siempre muestra el origen correcto para el contenido que se muestra.

     

En Android, al ingresar cualquier dato en un formulario, el origen siempre se muestra, incluso si previamente se eliminó desplazándose hacia abajo. El usuario puede tomar una decisión de confianza basada en este origen visible.

     

Debido a esto, no veo ningún riesgo para los usuarios más que los usuarios que simplemente hacen clic en un enlace y visitan una nueva página, por lo que estoy cerrando con WontFix.

Enlace

    
respondido por el Dinu S 20.01.2015 - 16:06
fuente

Lea otras preguntas en las etiquetas