App Web con iframe e utente: come gestire la sessione?

12

Abbiamo un'applicazione che sarà in iframe. I siti partner possono utilizzare la nostra applicazione - inserire iframe nei loro siti.

Il sito partner ha utenti con denaro, che utilizzeranno la nostra applicazione in iframe per acquistare articoli. Iframe ha bisogno di comunicare con il sito del partner.

Ad esempio, l'utente compra l'articolo. La nostra app crea un record sull'oggetto venduto nel database.

Quindi invia una richiesta all'app partner, in modo che il partner sappia che il suo utente ha acquistato un articolo e potrebbe ridurre i suoi soldi nel conto.

L'utente non deve accedere alla nostra app, deve solo accedere all'applicazione partner - sito padre e utilizzare il nostro iframe come effettuato l'accesso.

Come si fa in modo sicuro? So che c'è un sito che lo fa senza token visibili nelle richieste Ajax, quindi probabilmente c'è qualche sessione nell'app figlio. Sessione, non richiede nome utente e password.

Mi piacerebbe avere alcuni tutorial con schema. Ho cercato di cercare ma non sono nemmeno sicuro di come creare parole chiave per tale domanda.

Aggiorna

Che ne pensi di questo, stai vedendo cosa potrebbe essere potenzialmente insicuro? :

Quando viene caricata la pagina partner, c'è iframe e nel token parametro get viene passato a iframe, come <iframe src='www.shop.com?token=12345'><iframe>

Iframe a carico lato server - richiede un nuovo token dal sito partner passando come parametro il token che si trova nella url come parametro $ _GET.

In questo modo il token nel parametro get dell'iframe iframe diventa non valido, quindi anche quando l'utente lo vede, non può fare nulla.

Il nuovo token ricevuto nel server iframe viene salvato in sessione.

Quindi ora dal lato client - quando il cliente acquista e l'elemento in iframe, non ha bisogno di passare il token in richiesta, perché è in sessione.

Il server ifframe quando riceve la richiesta, acquista l'oggetto e invia la richiesta alle informazioni del server partner sull'acquisto dell'oggetto, in modo che il partner possa ridurre i costi. In questa richiesta il token è passato al server partner dalla sessione.

Il server partner riconosce l'utente per token e riduce i suoi soldi nell'account.

    
posta Darius.V 22.07.2014 - 15:54
fonte

1 risposta

8

Innanzitutto, non è una buona idea, per quanto ne so, mettere un'applicazione protetta in un iframe perché ti espone al problema di sicurezza. Il più grande è probabilmente clickjacking se tutto il resto viene eseguito correttamente. Questo è il motivo per cui desideri utilizzare l'opzione di intestazione X-FRAME-OPTIONS per impedirne il caricamento in un iframe.

Successivamente, si desidera comunicare tra il sito partner e il proprio sito, nell'iframe. La comunicazione tra i 2 è molto limitata a causa della stessa politica di origine . Se 2 siti web, non hanno lo stesso URL base, il che significa che non hanno la stessa origine, non possono parlare direttamente insieme. Quale è una cosa molto buona o avresti un grosso problema di sicurezza.

User does not have to login to our app, it only has to login to partner application - parent site and use our iframe as logged in.

Questo presuppone che ti fidi di ogni sito partner al 100% poiché hanno tutte le informazioni necessarie per accedere al tuo sito. È il caso?

Il tipo di accesso che stai cercando di fare è simile a OAuth , dove a terze parti è concesso l'accesso parziale al tuo sito per accedere ad alcune informazioni. Non è esattamente quello che vuoi fare, ma guarderei come è fatto.

    
risposta data 22.07.2014 - 16:36
fonte

Leggi altre domande sui tag