2009-06-14 2 views
1

Wenn ich Passwörter in meiner Anwendung auf die Einbeziehung englischer Wörter überprüfen möchte, sollte ich eine Datenbank mit englischen Wörtern lokal speichern (gibt es eine kostenlose Datenbank?) Oder gibt es einen (kostenlosen) Webdienst, den ich verwenden kann, um sie zu überprüfen entfernt?Passwörter gegen Wortdatenbank auf dem Server prüfen oder einen Webservice benutzen?

Idealerweise würde ich die Wörter mit einem Ajax-Aufruf überprüfen, aber ich möchte nicht das gesamte englische Wörterbuch mit XML übergeben. Ich habe das Gefühl, dass Netzwerkverkehr ein Problem werden könnte.

Irgendwelche Vorschläge?

(Auch alle Rails-spezifische Vorschläge?)

+0

ist das Ziel dieses Wörterbuch-Angriffe zu verhindern? Es gibt andere Methoden dafür. Wenn Sie zu große Kennwortoptionen zu komplex machen, kann dies tatsächlich mehr Schaden verursachen, da sich die Benutzer nicht daran erinnern oder sie aufschreiben. –

Antwort

1

/usr/share/dict/words enthält einen massiven Wortliste, wenn Sie auf Unix
Ansonsten here arbeitet ein Rubin Edelstein für etwas namens wordnet die geeignet sind, lösen Sie Ihr Problem leicht und schließen Sie möglicherweise Namen der berühmten Städte und Leute sowie
ein Sie sollten Google für "Kennwortanalyse" googeln und einige andere allgemeine schlechte Kennwortmuster außerdem überprüfen

+0

Toller erster Vorschlag. Eine Anmerkung zu WordNet (von http://wordnet.princeton.edu/faq#cat_content): WordNet enthält nur "Wörter der offenen Klasse": Substantive, Verben, Adjektive und Adverbien. Zu den ausgeschlossenen Wörtern gehören also Determinatoren, Präpositionen, Pronomen, Konjunktionen und Partikel. – bernie

+0

Wow, das ist perfekt. "Dieser Code basierte lose auf dem Modul Lingua :: Wordnet Perl von Dan Brian und verwendet eine ähnliche Strategie zur Konvertierung der WordNet®-Datendateien in eine BerkeleyDB-Datenbank. Das Skript convertdb.rb in der Distribution kann zum Erstellen dieser Datenbanken verwendet werden aus den WordNet®-Wörterbüchern. " -> Sagt es, dass Sie bei der Installation des Gems tatsächlich eine kleine lokale Datenbank installieren, die als BerkelyDB-Datenbank implementiert ist? So klingt es für mich. Oder muss ich mit dem Rubin-Juwel zu einem Remote-Dienst (Lexic-Datenbank von Wordnet) telefonieren? – Hank

+0

Wordnet selbst scheint nicht frei zu sein. Ist es wirklich Open Source? http://isbn.nu/026206197X – Hank

0

Ich würde sie in einer Datenbank/XML-Datei auf Ihrem Webserver speichern, dann eine Ajax Javascript Anruf zu einem auf demselben Server laufen Web-Service verwenden. In ASP.NET ist dies einfach zu tun; Ich bin nicht sicher, wie beteiligt ist dies, wenn Schienen mit ...

0

Nicht sicher, was Sie mit den Resultaten tun , aber Sie werden wahrscheinlich ein (und vielleicht zwei) Buchstabenwörter aus der Liste entfernen wollen, damit Sie nicht zu viele Treffer bekommen, die nicht viel bedeuten.

0

Wenn Sie einen Webservice verwenden, führen Sie eine Verzögerung ein, möglicherweise einen Ausfall (wenn der Dienst nicht verfügbar ist). Ihre Benutzer werden es nicht mögen. Es ist daher praktischer, Kennwörter anhand einer lokalen Wortliste zu prüfen. Ihre Sicherheitsanforderungen sollten jedoch der wichtigste Faktor bei Ihrer Entscheidung sein.

Verwandte Themen