Les meilleures Pratiques à mettre en Œuvre Sécurisée “se Souvenir de Moi”
Parfois, je tombe sur certaines plate-formes web qui ne donnent pas de fonctionnalité d'authentification, comme dans d'Authentification ASP.NET.
Je me demandais ce que les mesures de sécurité doivent être considérés lors de la mise en œuvre de "se Souvenir de Moi" des fonctionnalités de connexion, par codage à la main?
Ici sont les choses que je fais habituellement:
-
Stocker le nom d'utilisateur dans un cookie. Le nom d'utilisateur n'est pas chiffré.
-
Stocker une clé secrète dans un cookie. La clé secrète est généré en utilisant un moyen de la fonction basée sur le nom d'utilisateur. Le serveur va vérifier la clé secrète contre le nom de l'utilisateur, afin de veiller à ce nom d'utilisateur n'est pas changé.
-
Utilisation des cookies HttpOnly. http://www.codinghorror.com/blog/2008/08/protecting-your-cookies-httponly.html
Tout ce que j'ai manqué, ce qui pourrait éventuellement conduire à un trous de sécurité?
Vous devez vous connecter pour publier un commentaire.
Le cookie doit toujours être une valeur aléatoire qui expire. Il ya des cas où vous pouvez stocker l'état comme un témoin de la valeur et de ne pas être un security danger, tels que les utilisateurs de la langue, mais ce devrait être évitée autant que possible. Tournant HttpOnlyCookies sur, est une excellente idée.
Lire A3: "Broken d'Authentification et de Gestion de Session" dans le OWASP top 10 pour 2010. Un point important de cette section est que https doit être utilisé pour la ensemble de la session. Si la session est durable pour un temps très long, alors c'est encore plus important.
Également garder à l'esprit que "se Souvenir de Moi" crée une grande fenêtre dans laquelle un attaquant peut "rouler" sur la session. Cela donne un attaquant très longtemps (des Mois?) dans lequel il peut livrer une attaque CSRF. Même si vous avez de la protection CSRF un attaquant peut encore monter sur une session avec XSS et XmlHttpRequest (HttpOnlyCookies permettra d'éviter un hijack). "Se souvenir de Moi" permet de d'autres menaces comme xss, csrf, reniflant les plus graves. Aussi longtemps que ces vulnérabilités ont été corrigées, alors vous ne devriez pas avoir un problème avec le monde réel des pirates.
Le plus simple (et sécurisé) approche à mettre en œuvre un "se souvenir de moi" fonction serait de modifier le délai d'expiration de session de votre site web.fichier de configuration:
Se le délai d'attente de quelque chose de haut, peut-être un mois ou deux. Si l'option "se Souvenir de Moi" dans la case n'est pas cochée, puis stocker une variable de session d'un plus normal délai (de l'ordre de 24 heures). Cochez cette variable de session dans un fichier d'en-tête pour chaque demande. Si la case est cochée, alors agissez normalement et laisser asp.net prendre soin d'elle.
Si la session n'a pas de date d'expiration, il sera beaucoup plus facile à la force brute. Ces valeurs sont importantes, mais permettant à un hacker de passer des années à essayer de deviner un id de session est une vulnérabilité.