51 votes

Devrait Unicode être autorisés dans les noms d'utilisateur?

Pourquoi la plupart (tous?) sites web uniquement en charge les noms d'utilisateur en ASCII? Existe-il des considérations de sécurité si un admin décide de commencer à accepter Unicode noms d'utilisateur?

60voto

Rafał Dowgird Points 16600

Homoglyph attaques. L'utilisateur "chat" et "chat" sont différents des chaînes unicode bien qu'ils se ressemblent. La première lettre de la deuxième 'cat' russe 'с' - "LETTRE minuscule CYRILLIQUE ES" pour être exact. Le système ne peut pas dire que vous êtes de l'usurpation d'un autre nom d'utilisateur à l'ordinateur de l'entailles sont différents.

Edit: la Prévention mixte scripts ne résout pas le problème. Par exemple, "сосо' est de la pure Cyryllic et peut être utilisé pour usurper ascii "coco".

Aussi, à gauche-à-droite pour les remplacer (et les amis.) Laisser unsanitized et ils vont gâcher la totalité de votre page.

6voto

Mike Points 2252

L'authentification HTTP? Il pourrait y avoir quelques problèmes avec l'envoi de l'unicode nom d'utilisateur et/ou mot de passe) sur les protocoles existants. Un cas que j'ai couru en avant est avec l'authentification de Base. Il n'est pas bien défini pour gérer l'envoi de ces unicode noms d'utilisateur/mots de passe dans la base auth-têtes.

6voto

Pavel Radzivilovsky Points 11613

Alors qu'il est à tout demander pourquoi il ne devrait jamais être nom d'utilisateur et pas seulement un "mot de passe" pour identifier un utilisateur, je pense qu'il n'y a pas de raison de refuser de l'unicode des noms d'utilisateurs.

Ce qui est plus important, c'est que le mot de passe pour être validé comme lanugage-agnostique: il doit traiter keystokes indépendamment de l'utilisateur de configuration de clavier. Cela signifie, "שלום" et "akuo" serait le même mot de passe. Ceci est important, car l'utilisateur n'a souvent pas voir les caractères du mot de passe, il est en train de vous, et ils sont gravement énervé si le voyant de verrouillage des majuscules est activé.

4voto

David Points 12145

Alors que vous pouvez aller de l'avant et permettre à unicode, comprendre que certains noms d'utilisateur ne fonctionne pas comme prévu, grâce aux différentes cultures de l'application de règles différentes pour les mêmes caractères.

Considérons la base de cas de rupture de cas sensivitity: En turc, les noms d'utilisateur "Id1" et "id1" sont différents (en turc il y a deux différentes, l'une avec un point et un sans, résultant en 2 en majuscule et 2 petites lettres qui ne correspondent pas à la même captialization règles que l'anglais). Ainsi, alors que tout le turc personne peut entrer leur nom dans leur propre langue, le programme ne sera pas traiter leur nom parce qu'ils attendent d' - à la place, il fera l'objet d'une étrange transformation en mutant anglais.

Spécial caractères latins dans les langues Européennes sont similaires, les chevauchements, les rendant apparemment aléatoires, comme pour la langue dans laquelle ils sont entrés dans. D'autres régions du monde ont les mêmes caractères partagés où les règles d'utilisation diffèrent - dans certains cas, nationales et culturelles des haines pourrait en être très en colère quand les gens les caractères de leur nom d'utilisateur sont traitées comme si elle était écrite dans la langue de leur ennemi juré (en raison de l'exploitation des systèmes de réglage par défaut pour ces caractères étrangers).

3voto

OmniBus Points 517

Votre sens de l'observation n'est pas toujours vrai. Et, le choix de l'ASCII est en grande partie de facteurs humains plutôt que de la technique ou de sécurité.

Pour la plupart des cas, c'est juste pour la facilité de programmation. Un programmeur ne sait jamais que tous les logiciels, les bibliothèques, les services publics dans le site web va rompre ou non avec certains personnages. Pourquoi les risques de développement de site web tout en ASCII fonctionne bien? Aussi, certains emballés web logiciel ferait obstacle à l'utilisation de l'Unicode dans nom d'utilisateur. Cette contribution est la question que de nombreux sites web uniquement en charge les noms d'utilisateur au format ASCII.

Théoriquement, tous les logiciel peut gérer 8 bits de données bien. Il n'y a pas de problème de stockage ou de la transmission de nos jours. Même si certains protocoles ne sont pas, ils peuvent traduire en UTF-7 ou avec d'autres la transformation des régimes.

Il ya quelques problèmes avec les caractères Unicode. C'est plus du côté du traitement des données. Il pourrait être l'affichage, les polices, la disponibilité des logiciels et des bibliothèques pour les non-BMP personnages, de classement, de comparaison, les méthodes de saisie, de sens d'écriture. Les administrateurs peuvent pas connaître suffisamment pour gérer. Selon la nature du site, il pourrait être un problème, mais surtout pas.

Pour admin but, il n'est pas facile à saisir certains des caractères exotiques. Il rend admin dur à la recherche pour les utilisateurs. Il est également difficile pour un administrateur de garder les noms offensifs en langues étrangères hors du site.

Cependant, il n'est pas rare que les Chinois les noms d'utilisateur sont utilisés Chinoise de son site internet. Il n'est pas toujours en ASCII. D'autres langues et cultures. Certains projets mondiaux accepter nearlly toutes sortes de caractères Unicode. Wikipédia est un exemple.

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