2009-06-14 8 views
1

Si je souhaite vérifier les mots de passe dans mon application pour l'inclusion de mots anglais, dois-je stocker une base de données de mots anglais (existe-t-il une base de données gratuite?) Ou y at-il un service web gratuit? à distance?Vérification des mots de passe contre la base de données de mots sur le serveur ou utiliser un service Web?

Idéalement, je voudrais vérifier les mots en utilisant un appel Ajax, mais je ne veux pas passer le dictionnaire anglais entier par XML. J'ai le sentiment que le trafic réseau pourrait devenir un problème.

Des suggestions?

(En outre, des suggestions spécifiques Rails?)

+0

est l'objectif de cette option pour éviter les attaques de dictionnaire? Il existe d'autres méthodes pour cela. Rendre les options de mot de passe valides trop complexes peut en fait causer plus de tort car les utilisateurs ont tendance à ne pas les mémoriser ou à les écrire. –

Répondre

1

/usr/share/dict/mots contient une liste de mots massif si vous travailler sur unix
Sinon here est un bijou rubis pour quelque chose appelé WordNet qui pourrait facilement résoudre votre problème et probablement inclure les noms des villes célèbres et des personnes ainsi
vous devez google pour « analyse de mot de passe » et vérifier d'autres modèles de mauvais mot de passe communs et

+0

Grande première suggestion. Une chose à noter à propos de WordNet (de http://wordnet.princeton.edu/faq#cat_content): WordNet ne contient que des "mots de classe ouverte": noms, verbes, adjectifs et adverbes. Ainsi, les mots exclus comprennent les déterminants, les prépositions, les pronoms, les conjonctions et les particules. – bernie

+0

Wow, c'est parfait. «Ce code était basé sur le module Lingua :: Wordnet Perl de Dan Brian et utilise une stratégie similaire de conversion des fichiers de données WordNet® en une base de données BerkeleyDB Le script convertdb.rb de la distribution peut être utilisé pour construire ces bases de données des dictionnaires WordNet®. " -> Dire que lorsque vous installez la gemme, vous installez une petite base de données locale implémentée comme une base de données BerkelyDB? Voilà ce que cela me semble. Ou est-ce que je dois appeler un service à distance (Wordnet Lexical Database) en utilisant la gemme ruby? – Hank

+0

Wordnet lui-même ne semble pas être libre. Est-ce vraiment open source? http://isbn.nu/026206197X – Hank

0

je les stocker dans une base de données/fichier xml sur votre serveur Web, utilisez un appel Javascript Ajax à un service Web en cours d'exécution sur ce même serveur. Dans ASP.NET, c'est facile à faire; Je ne sais pas comment cela est impliqué lors de l'utilisation des rails ...

0

Je ne sais pas ce que vous faites avec les résultats , mais vous voudrez probablement enlever un (et peut-être deux) mots de la liste afin que vous n'obteniez pas trop de résultats qui ne signifient pas grand-chose.

0

Si vous utilisez un service Web, vous introduisez un délai, peut-être une panne (si le service n'est pas disponible). Vos utilisateurs ne l'aimeront pas. Il est donc plus pratique de vérifier les mots de passe par rapport à une liste de mots locale. Cependant, vos exigences de sécurité devraient être le facteur le plus important dans votre décision.

Questions connexes