Aplicación web con iframe y usuario: ¿cómo manejar la sesión?

12

Tenemos aplicación que estará en iframe. Los sitios asociados pueden usar nuestra aplicación, poner iframe en sus sitios.

El sitio del socio tiene usuarios con dinero, que utilizarán nuestra aplicación en iframe para comprar artículos. Iframe necesita comunicarse con el sitio asociado.

Por ejemplo, el usuario compra un artículo. Nuestra aplicación crea un registro sobre el artículo vendido en la base de datos.

Luego envía la solicitud a la aplicación del socio, de modo que el socio sepa que su usuario compró un artículo y podría reducir su dinero en la cuenta.

El usuario no tiene que iniciar sesión en nuestra aplicación, solo tiene que iniciar sesión en la aplicación asociada - sitio principal y usar nuestro iframe como iniciado sesión.

¿Cómo se hace esto de manera segura? Sé que hay un sitio que lo hace sin tokens visibles en las solicitudes de ajax, por lo que probablemente haya alguna sesión en la aplicación secundaria. Sesión, no requiere nombre de usuario y contraseña.

Me gustaría obtener algunos tutoriales con esquema. Intenté buscar pero no estoy seguro de cómo crear palabras clave para dicha pregunta.

Actualizar

¿Qué hay de esto, estás viendo lo que podría ser potencialmente inseguro? :

Cuando se carga la página asociada, hay iframe y el token de obtención de parámetros se pasa a iframe, como <iframe src='www.shop.com?token=12345'><iframe>

Iframe on load en el lado del servidor: solicita un token nuevo del sitio asociado que pasa como parámetro el token que está en la url como parámetro $ _GET.

De esa manera, el token en el parámetro iframe url get se vuelve inválido, por lo que incluso cuando el usuario lo ve, no puede hacer nada.

El nuevo token que se recibe en el servidor de iframes se guarda en la sesión.

Ahora desde el lado del cliente: cuando el cliente compra un artículo en iframe, no necesita pasar el token en la solicitud, porque está en sesión.

El servidor Iframe cuando recibe la solicitud, compra el artículo y envía la información al servidor asociado sobre la compra del artículo, por lo que el socio podría reducir el dinero. En esta solicitud, el token se pasa al servidor asociado desde la sesión.

El servidor asociado reconoce al usuario por el token y reduce su dinero en la cuenta.

    
pregunta Darius.V 22.07.2014 - 15:54
fuente

1 respuesta

8

Primero, no es una buena idea, por lo que sé, colocar una aplicación segura en un iframe porque eso lo expone a un problema de seguridad. El más grande es probablemente clickjacking si todo lo demás se hace correctamente. Esta es la razón por la que desea utilizar la opción de encabezado X-FRAME-OPTIONS para evitar que se cargue en un iframe.

A continuación, desea comunicarse entre el sitio asociado y su propio sitio, en el iframe. La comunicación entre los 2 es muy limitada debido a la la misma política de origen . Si 2 sitios web no tienen la misma url base, lo que significa que no tienen el mismo origen, no pueden hablar directamente. Lo cual es algo muy bueno o tendrías un gran problema de seguridad.

  

El usuario no tiene que iniciar sesión en nuestra aplicación, solo tiene que iniciar sesión en   aplicación de socio: sitio principal y use nuestro iframe como iniciado sesión.

Esto supone que confía en cada sitio asociado al 100%, ya que tienen toda la información necesaria para iniciar sesión en su sitio. ¿Es el caso?

El tipo de inicio de sesión que intenta hacer es similar al OAuth , donde se otorga a terceros acceso parcial a su sitio para acceder a alguna información. No es exactamente lo que quieres hacer, pero me gustaría ver cómo se hace.

    
respondido por el Gudradain 22.07.2014 - 16:36
fuente

Lea otras preguntas en las etiquetas