Travail sur un système de connexion - le point où le client choisit son mot de passe pour l'accès au site. Au-delà de l'utilisation de RegEx pour s'assurer que le mot de passe est assez fort, normalement toutes les données qui seront stockées dans la base de données sont vérifiées par rapport à l'injection et un jeu de caractères raisonnablement restreint est appliqué sur tous les champs. Je ne veux pas vraiment un jeu de caractères particulièrement restrictif pour le mot de passe, car je pense que c'est un peu un anti-pattern sur la sécurité pour le contrôler trop.Restriction du jeu de caractères du mot de passe utilisateur
Cependant, dans le cas du mot de passe, je vais avec ce hachage SHA-512 Salted pour insérer de toute façon qui soulève une poignée de questions:
est-il un point quelconque à restreindre le caractère définir que le client peut utiliser dans le mot de passe - à savoir suis-je exposé à des vulnérabilités en dehors de l'injection qui, je suppose, seraient complètement contournées par le hachage? Il doit y avoir des aspects négatifs à une approche d'autorisation générale - je peux penser que dans l'avenir, ce qui est une combinaison innocente peut devenir dangereux - est-ce une réelle préoccupation, et y en a-t-il d'autres que je puisse avez manqué? Y a-t-il des caractères/chaînes qui doivent être rejetés - obtiendraient-ils de toute façon la protection ASP.NET native? Un peu plus subjectif peut-être, mais étant donné que c'est un hachage SHA-512 - est-il utile de restreindre la longueur maximale du mot de passe que l'utilisateur peut choisir (dans des limites raisonnables), en supposant qu'un mot de passe de taille significative/complexité pourrait déclencher un avertissement pour confirmer qu'ils veulent le définir.
Merci pour votre aide.
EDIT: Il s'agit d'une application Web ASP.NET accédant à une base de données MSSQL2008 à l'aide d'ADO.NET (pas LINQ/EF).
Merci - +1 pour avoir attiré mon attention sur les caractères internationaux. – Chris