Code per l'architettura di sicurezza delle applicazioni Web mobili?

1

Cari esperti di sicurezza (di cui non sono),

I tuoi pensieri e amp; suggerimenti per l'architettura di un'applicazione per un'applicazione web mobile ( ad esempio, HTML5 con Sencha Touch) sono invitati & ha accolto con favore.

Fino a che punto l'uso delle code ( eg, SQS di Amazon AWS) aumenta / diminuisce / non ha alcun effetto sulla sicurezza delle app Web mobili?

Cosa ne pensi di questo approccio?

  1. Un utente (ad esempio su un iPhone o Droid) utilizza il browser dello smartphone ( eg, Mobile Safari su iPhone) per accedere a un'applicazione Web mobile tramite SSL.

  2. L'applicazione sul lato server dell'URL non ha praticamente alcuna elaborazione ... tranne per accettare i messaggi JSON dalla MWA (Mobile Web App) ... INSERIRE quei messaggi in una coda (AWS SQS) .. .monitor una seconda coda AWS SQS per un messaggio risultante ... che l'app lato server in pratica restituisce solo al MWA.

  3. Il lavoro "reale" dell'App è fatto ... su ancora-un altro server che sta prendendo i messaggi dalla prima coda ... eseguendo tutta l'elaborazione ... formattando una risposta ... e PUSHING della risposta (un oggetto JSON) sulla seconda coda.

Il processo di riflessione è qui: i malintenzionati non possono accedere ai processi in esecuzione sul server facendo il lavoro "reale" ... che è anche il luogo in cui i database dell'applicazione verranno mantenuti.

PERCHÉ Non ho trovato questo approccio all'architettura dell'applicazione discusso in nessuno dei thread (almeno, non in una forma in cui riconosco l'architettura), mi chiedo se ci sono problemi noti (almeno, noto per i professionisti della sicurezza, come voi stessi) che rendono l'approccio poco attraente?

Che ne pensi? Questo approccio avrebbe impedito i cattivi? Ingenuamente cadere in un noto exploit cattivo ragazzo? Oppure ... che cosa?

Molti, molti grazie in anticipo per i tuoi commenti e suggerimenti!

    
posta Plane Wryter 30.08.2013 - 21:17
fonte

2 risposte

1

Questo concetto di base è piuttosto standard per le applicazioni web, con i Presentation Server nella DMZ che comunicano con i server delle applicazioni all'interno della rete che richiedono i dati dai server di database.

O a volte ci sono solo due livelli, ma sono separati da firewall o router con elenchi di controllo degli accessi.

Le comunicazioni possono avvenire per passaggio di messaggi, code o connessione diretta.

    
risposta data 30.08.2013 - 22:41
fonte
0

Questo approccio non è decisamente poco attraente. È (non fino alla lettera, ma in generale) quante applicazioni web o mobili ben conosciute fanno le loro cose. L'isolamento delle interfacce e dei sistemi con cui gli utenti interagiscono con i sistemi che eseguono l'elaborazione e la manipolazione dei dati è sempre una buona pratica.

L'altro aspetto è assicurarsi che i dati dannosi o le richieste vengano gestiti correttamente anche se la richiesta raggiunge l'applicazione oi server di database. Fintanto che segui le buone pratiche di sicurezza del lato client (proteggi contro XSS e CSRF, convalida qualsiasi lato del server dati di sessione per rendere difficile il furto dei cookie), l'unica parte rimanente è il modo in cui l'utente gestisce i loro dati e, puoi farlo solo così tanto.

    
risposta data 31.08.2013 - 15:48
fonte

Leggi altre domande sui tag