Le applicazioni SPA hanno considerazioni di sicurezza diverse rispetto ai siti HTML5?

3

Sto esaminando Applicazioni per pagina singola utilizzate sia per lo sviluppo mobile (PhoneGap) che per i normali siti web.

Poiché l'applicazione può caricare da una copia offline , può essere eseguita da http://localhost , o può essere impacchettato come app visibile nell'Apple App Store o nel Play Store Android (ecc.), l'approccio standard di impostazione delle credenziali per l'utente e accesso alle risorse è diverso.

Ovvero, Microsoft ha un'intera infrastruttura che abilita OAuth per applicazioni native (anche se non vedo se / come riguardano le applicazioni SPA).

Domanda

  • Le applicazioni SPA sono più o meno immuni da CSRF, XSS o altri attacchi normali?

  • Quali sono le applicazioni SPA incorporate in PhoneGap o altre app?

  • Poiché le applicazioni SPA possono leggere i dati REST negli URL passati, quali protezioni ci sono dal telefono o da normali app web che rispondono in questo modo?

  • Ci sono idee sbagliate su come fare applicazioni SPA che portano a vulnerabilità della sicurezza? (Ho visto spesso sviluppatori di app che chiedono come usare la "crittografia" di Javascript invece di HTTPS qui)

  • I problemi di autenticazione sono diversi? (Uso della sessione HTML5 e passaggio dei parametri alla seconda pagina SPA)

Non ho visto molte discussioni su questo nuovo modo di sviluppare un'applicazione alla luce della sicurezza, e sospetto che qui ci siano molti passi falsi sulla sicurezza.

    
posta random65537 26.08.2013 - 17:04
fonte

2 risposte

5

Le applicazioni SPA sono più o meno immuni da CSRF, XSS o altri attacchi normali?

Generalmente, no. L'interazione tra il client e il server dovrebbe essere simile, se non identica a quella di un'app web plain-old-AJAXifed. Stai ancora trattando le richieste e le risposte HTTP provenienti da un cliente non fidato e, in base alle tue esigenze, deve essere trattato con attenzione, ma non vedo alcun rischio aggiuntivo particolare che io consideri una regola.

Tuttavia:

Ci sono due dei Top 10 di OWASP che sono potenzialmente più a rischio di essere protetti in modo improprio.

1) Esposizione dati sensibili

Se non stai attento a quali dati sono contenuti dal caricamento iniziale della pagina, potresti facilmente inviare dati che non dovrebbero essere necessariamente esposti a tutti gli utenti. Poiché l'intera pagina non è generalmente visibile nel browser in una SPA, ciò può far cullare uno sviluppatore distratto in un falso senso di sicurezza.

2) Controllo di accesso a livello di funzione mancante

Nella mia mente, questo è il più grande quando si parla di SPA. Dato che stai spostando le funzioni e la logica dal server e dal client, è molto, molto facile fornire a un client l'accesso a funzioni che non è autorizzato a utilizzare. In una certa misura questo può essere attenuato dal fatto che gli endpoint dei dati dovrebbero essere protetti separatamente e questo dovrebbe causare il fallimento di qualsiasi tentativo di utilizzare funzioni non autorizzate, ma questo è quello che mi dà bruciore di stomaco.

Esistono idee sbagliate su come eseguire le applicazioni SPA che portano a vulnerabilità della sicurezza?

Sì. Un grosso malinteso (in ogni caso, da parte degli sviluppatori meno attenti alla sicurezza) è che la logica dell'applicazione ti appartiene ancora e che puoi fare affidamento su JavaScript nel browser per cose come la convalida dell'input e la funzione. Come tutti sappiamo, non è possibile. Se è sul client, non appartiene a te. Qualsiasi convalida e autorizzazione che si verificano sul client è UX, non sicurezza dell'applicazione. I tuoi endpoint sul server sono in definitiva e totalmente responsabili di garantire la sicurezza dei dati e dell'applicazione.

I problemi di autenticazione sono diversi? (Uso della sessione HTML5 e passaggio dei parametri alla seconda pagina SPA)

Non che io possa pensare. Ricorda, le SPA non sono un modello fondamentalmente diverso, solo un nuovo modo per consentire agli utenti di interagire con un'applicazione web in modo da sfruttare le moderne funzionalità del browser per offrire un'esperienza utente migliore.

    
risposta data 26.08.2013 - 17:58
fonte
1

Direi che le ZPS sono più vulnerabili a JSON Hijacking (che è una forma di CSRF) perché molte di queste applicazioni si affidano a JSON per trasmettere informazioni. Si tratta di un attacco che consente a un sito dannoso di recuperare ed elaborare i dati anziché la comunicazione unidirezionale in genere visualizzata con CSRF.

Phil Haack ha scritto un grande articolo che approfondisce il modo in cui funziona .

    
risposta data 26.08.2013 - 17:58
fonte

Leggi altre domande sui tag