Non sono un esperto di sicurezza, quindi spero che alcuni di voi siano in grado di dirmi se ci sono dei difetti nella progettazione della sicurezza per la mia app web. Spero di essere in grado di spiegarlo abbastanza chiaramente da farmi capire meglio.
Ho un sito Web che effettua chiamate alla mia API. Entrambi utilizzano SSL e sono ospitati in Azure, ma hanno domini / server diversi. Sto anche usando i token bearer di ASP .Net Identity 2.0 e OAuth, con una scadenza di 30 giorni, per tracciare se un utente è "loggato" o meno.
Gli utenti possono accedere tramite il sito Web principale o utilizzando un widget che può essere aggiunto a QUALSIASI sito di terze parti.
Per mantenere le cose sicure, il widget crea un iframe che punta a una pagina sul mio server API e tutte le funzionalità, come l'elaborazione di login e transazioni, si svolgono all'interno di questo iframe.
La pagina padre usa postMessage per comunicare con l'iframe quando qualcosa deve accadere, ma per evitare che qualcosa nella pagina padre ottenga l'accesso a quel token, esiste solo nella memoria locale / sessione dell'iframe e non viene mai comunicato back up lo stack.
Finora tutto sembra funzionare come previsto, ma mi sono imbattuto in uno scenario in cui ora devo comunicare il token al genitore per il codice in esecuzione sul mio sito web. Tuttavia, sono riluttante a farlo, in quanto potenzialmente crea un buco di sicurezza.
Qualcuno ha qualche idea sul fatto che questo sia un rischio accettabile per il controllo del codice I, o se ci sono problemi con l'approccio generale che ho preso?