Función de seguridad: impidiendo que javascript cierre la ventana

2

Las últimas versiones de la mayoría de los navegadores web han implementado una función para evitar que javascript cierre la ventana o pestaña actual.

Método window.close () de Firefox

  

Solo se puede llamar a este método para ventanas que fueron abiertas por un script usando el método window.open (). Si la secuencia de comandos no abrió la ventana, aparece el siguiente error en la Consola de JavaScript: es posible que las secuencias de comandos no cierren las ventanas que no se abrieron con la secuencia de comandos.

Lo mismo se aplica a Internet Explorer y Chrome, pero no pude encontrar un documento oficial para ellos sobre esta función para vincular aquí.

Mi pregunta es "¿Por qué los navegadores impiden que javascript cierre la ventana actual a menos que esa ventana se haya abierto a través de un script en sí? >     

pregunta Silverfox 11.04.2016 - 13:51
fuente

2 respuestas

3

La razón por la que se aplica esta limitación es que la política SOP no se aplica a window.close (), en cambio, puede cerrar cualquier ventana. Sería imposible aplicar la política de SOP a window.close () como normalmente, cada ventana en un proceso de navegador está aislada una de la otra para evitar ciertos ataques de frontera, por lo que incluso sus "propias ventanas" estarían en un SOP diferente. alcance.

Un proceso común donde se usa esto es un proceso de pago, donde el sitio de la tienda web abre una ventana para el pago, y luego, cuando el sitio de la tienda web detecta que el pago se ha completado, la ventana se cierra.

Para evitar el abuso de esta función, por ejemplo, para cerrar las ventanas de otros sitios, se establece la limitación de que solo las ventanas abiertas por un script pueden estar cerradas.

En las circunstancias en las que desea cerrar sesión o alejar a un usuario de la página, la acción normal es imponer la no cacheabilidad y luego usar window.location.href en lugar de mover al usuario a una página de "cierre de sesión".

    
respondido por el sebastian nielsen 11.04.2016 - 15:50
fuente
0

Notablemente, para evitar que los sitios que sufren de fallas de XSS se "cierren automáticamente" mediante scripts maliciosos. A pesar de que las páginas abiertas por script aún sufrirían por el problema ...

Uno podría argumentar que "cualquier sitio propenso a XSS podría ser desfigurado de todos modos".

Cierto, pero como comentó Matthew, al menos no "perdería" su historial (que podría restaurarse fácilmente al precio de unos pocos clics) y, posiblemente, las descargas actuales (tenga en cuenta que los navegadores modernos ahora aparecen de forma emergente un mensaje "¿está seguro de cancelar su descarga?", pero ese no era el caso anteriormente)

    
respondido por el niilzon 11.04.2016 - 14:15
fuente

Lea otras preguntas en las etiquetas