¿Es posible encontrar la nueva URL de iframe entre dominios después de una redirección?

StackOverflow https://stackoverflow.com/questions/815409

  •  03-07-2019
  •  | 
  •  

Pregunta

Estoy intentando publicar en el formulario de inicio de sesión de una aplicación en otro subdominio de mi sitio. Es una aplicación de terceros a la que no tengo acceso de origen.

Sé que no puede acceder a la mayoría de las funciones de un iframe entre dominios debido a la la misma política de origen . Sin embargo, todo lo que necesito para acceder es la URL a la que se ha redirigido (a través de JavaScript) dentro del iframe. Tiene un token de sesión por el que quiero pasar.

Eso parece algo que podría ser lo suficientemente seguro como para ser permitido, pero aún no he encontrado la manera de hacerlo. Estoy usando jQuery y probé $ ('iframe'). Contents () , pero parece que no tengo ningún permiso sobre ese objeto. También verifiqué $ ('iframe'). Attr ('src') , pero permanece como la URL de redireccionamiento previo. ¿Hay otra manera?

¿Fue útil?

Solución

No, no tienes acceso a ninguna de las propiedades dentro de un iframe. Solo tiene acceso a las propiedades externas de posicionamiento y estilo.

Por eso es tan difícil trabajar con los marcos. Por lo general, solo los uso si no me importa lo que se haga dentro de ellos.

¿No puedes hacer una autenticación del lado del servidor y pasar token? En lugar de que el cliente realice la autenticación, ¿no puede hacerlo en su servidor? Es posible que deba realizar un trabajo adicional para crear la solicitud HTTP y analizar la respuesta, pero evita cualquier problema con el iframe.

La conclusión es que los iframes probablemente no son los mejores en los que confiar (especialmente cuando se trata de la funcionalidad de navegador cruzado) para cosas importantes como la autenticación.

Otros consejos

Pruebe este ejemplo (método 2) en el que el autor configura otro iframe dentro del Primero, cargando una página en el dominio original. Se permite que la página interna llame a javascript en el padre externo, ya que se cargan en el mismo dominio. Simplemente cargue la página interna con los parámetros apropiados, que se pueden pasar al padre.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top