2010-09-15 15 views
47

Sarebbe un'idea buona o cattiva utilizzare localStorage per dati sensibili (assumendo le attuali implementazioni HTML5)?HTML5 localStorage security

Quali metodi posso utilizzare per proteggere i dati in modo che non possano essere letti da una persona che ha accesso al computer client?

+0

Ho postato [una risposta a una domanda simile] (http://stackoverflow.com/a/24677597/19212) che potrebbe essere illuminante. –

risposta

54

Cattiva idea.

  1. Qualcuno con accesso alla macchina sarà sempre in grado di leggere il localStorage, non c'è molto che si possa fare per impedirlo. Digita semplicemente "localStorage" nella console di Firebug e ottieni tutte le coppie chiave/valore ben elencate.
  2. Se si riscontra una vulnerabilità XSS nell'applicazione, qualsiasi elemento memorizzato in localStorage è disponibile per un utente malintenzionato.
  3. Puoi provare a crittografarlo, ma c'è un problema. Crittografarlo sul client è possibile, ma significherebbe che l'utente deve fornire una password e che si deve dipendere da implementazioni javascript non crittografate della crittografia.
  4. La crittografia sul lato server è ovviamente possibile, ma il codice client non è in grado di leggerlo o aggiornarlo e pertanto è stato ridotto localStorage a un cookie glorificato.

Se deve essere sicuro, è meglio non inviarlo al cliente. Ciò che non è nel tuo controllo non può mai essere sicuro.

+3

Lo prenderò in secondo luogo. Cattiva pratica. https://www.owasp.org/index.php/HTML5_Security_Cheat_Sheet#Local_Storage_.28a.ka_Offline_Storage.2C_Web_Storage.29 –

+7

Tuttavia, un buon punto è che uno script da un dominio può leggere 'localStorage' impostato da quel dominio ** solo ** –

-2

La crittografia a chiave pubblica può essere applicata per impedire qualsiasi tipo di intrusione. Inoltre, i controlli di integrità dei dati (come CRC o hash) possono essere utilizzati per assicurarsi che i dati siano convalidati dal server.

+4

No. PKI non aiuta in ogni caso. Inoltre, se l'attaccante può modificare il contenuto, può anche cambiare facilmente gli hash. Gli hash potrebbero aiutare a rilevare modifiche non intenzionali ("corruzione"), però. – Olli

Problemi correlati