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.