195 votes

Le stockage local peut-il jamais être considéré comme sûr ?

On me demande de développer une application web qui fonctionnera hors ligne pendant de longues périodes. Pour que cela soit viable, je ne peux éviter de sauvegarder des données sensibles (des données personnelles, mais pas le genre de données que vous ne feriez que hacher) dans le stockage local.

Je reconnais que ce n'est pas une pratique recommandée, mais n'ayant guère le choix, je fais ce qui suit pour sécuriser les données :

  • chiffrer tout ce qui entre dans le stockage local en utilisant la bibliothèque cryptographique javascript de stanford et AES-256
  • le mot de passe de l'utilisateur est la clé de chiffrement et n'est pas stocké sur l'appareil
  • diffusion de tout le contenu (lorsqu'il est en ligne) à partir d'un seul serveur de confiance via ssl
  • validation de toutes les données allant et venant du stockage local sur le serveur en utilisant le projet owasp antisamy
  • dans la section réseau de l'appcache, sans utiliser *, et en listant seulement les URIs nécessaires à la connexion avec le serveur de confiance.
  • en général, essayer d'appliquer les directives suggérées dans l'aide-mémoire XSS de l'OWASP.

Je suis conscient que le diable se cache souvent dans les détails et je sais que le stockage local et la sécurité basée sur le javascript en général suscitent beaucoup de scepticisme. Quelqu'un peut-il nous dire si c'est le cas ?

  • des défauts fondamentaux dans l'approche ci-dessus ?
  • des solutions possibles pour de tels défauts ?
  • existe-t-il un meilleur moyen de sécuriser le stockage local lorsqu'une application html 5 doit fonctionner hors ligne pendant de longues périodes ?

Merci pour toute aide.

-35voto

hellol11 Points 316

Non.

localStorage est accessible par n'importe quelle page web, et si vous avez la clé, vous pouvez modifier les données que vous voulez.

Cela dit, si vous parvenez à trouver un moyen de crypter les clés en toute sécurité, peu importe le mode de transfert des données, si vous pouvez contenir les données à l'intérieur d'une fermeture, alors les données sont (quelque peu) sûres.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X