Frage

Offensichtlich eine Art Mechanismus für die Anmeldeversuche begrenzt, ist eine Sicherheit erforderliche. Während ich das Konzept einer exponentiell ansteigende Zeit zwischen den Versuchen, wie, was bin ich die Speicherung der Informationen nicht sicher. Ich interessiere mich auch für alternative Lösungen, vorzugsweise ohne Captchas.

Ich vermute, ein Cookie aufgrund keine Cookies blockiert funktionieren würde, oder sie automatisch löschen, sondern Sitzungen arbeiten? Oder hat sie in einer Datenbank gespeichert werden? Als nicht bewusst, welche Methoden können / werden verwendet werden, so einfach ich weiß nicht, was praktisch ist.

War es hilfreich?

Lösung

einige Spalten in der Tabelle users 'failed_login_attempts' verwenden und 'failed_login_time'. Die ersten Schritte pro fehlgeschlagener Anmelde, und setzt auf der erfolgreichen Anmeldung. Die zweite ermöglicht es Ihnen, die aktuelle Zeit mit dem letzten fehlgeschlagenen Zeit zu vergleichen.

kann Ihr Code diese Daten in der DB verwenden, um zu bestimmen, wie lange es wartet Benutzer zu sperren, die Zeit zwischen erlaubten Logins etc.

Andere Tipps

Google Nimmt man die notwendigen Usability-Tests durchgeführt (nicht eine unfaire Annahme) und entschieden Captchas zu verwenden, würde ich mit ihnen empfehlen, Mitgehen.

Timeouts Erhöhung ist frustrierend, wenn ich ein echter Benutzer bin und habe mein Passwort vergessen (mit so vielen Websites und deren zugehörige Passwörter, die viel passiert, vor allem für mich)

Versuche in der Datenbank zu speichern ist die beste Lösung IMHO, da es Ihnen die Prüfungs Aufzeichnungen der Sicherheitsverletzung Versuche gibt. Je nach Anwendung kann dies oder nicht gesetzlich vorgeschrieben sein.

Durch alle schlechten Versuche der Aufnahme können Sie sammeln auch höhere Level-Informationen, wie zum Beispiel, wenn die Anforderungen von einer IP-Adresse kommen (das heißt jemand / Sache ist eine Brute-Force-Attacke versucht), so können Sie die IP-Adresse blockieren. Dies kann sehr nützliche Informationen sein.

Wenn Sie einen Schwellenwert festgestellt haben, warum sie nicht zwingen, die E-Mail anzufordern, um ihre E-Mail-Adresse gesendet werden (dh ähnlich wie: ‚Ich habe mein Passwort vergessen‘), oder Sie können für den CAPCHA Ansatz gehen.

Lock out-Politik ist alles schön und gut, aber es ist ein Gleichgewicht.

Eine Überlegung ist, über die consruction von Benutzername zu denken - erraten? Können sie überhaupt aufgezählt werden?

Ich war auf einem externen App Pen-Test für eine dotcom mit einem Employee Portal, auf dem Outlook Web Access / Intranetservice, bestimmte Apps serviert. Es war leicht, Benutzer aufzuzählen (die Exec / Managament-Team auf der Website selbst und durch Größen wie Google, Facebook, LinkedIn, etc.). Sobald Sie das Format der Benutzeranmelde bekam (Vorname dann als einzelne Zeichenfolge Nachnamen eingegeben) hatte ich die Möglichkeit, 100 von den Benutzern sich durch ihre drei Streiks zu schließen und out-Politik.

Antworten in dieser Beitrag priorisieren Datenbank zentrierten Lösungen, weil sie eine Struktur von Aufzeichnungen zur Verfügung stellen, die Auditierung und Aussperrung Logik bequem zu machen.

Während die hier Antworten Erraten Angriffe auf einzelne Benutzer ansprechen, ein wichtiges Anliegen bei diesem Ansatz ist, dass es das System verlässt offen Denial of Service-Attacken . Jeder und jede Anfrage aus der Welt sollte nicht Trigger-Datenbank arbeiten.

Eine Alternative (oder zusätzlich) Schicht der Sicherheit in dem req / res Zyklus umgesetzt früher werden soll, die Anwendung und die Datenbank von der Durchführung Aussperrung Operationen zu schützen, die teuer sein können und sind nicht erforderlich.

Express-Brute ist ein hervorragendes Beispiel, dass Redis Caching nutzt bösartige, um herauszufiltern Anfragen und ermöglicht ehrlichen.

Sie wissen, welche Benutzer-ID-Hit wird, halten eine Flagge und wenn es nur einen Schwellenwert erreicht stoppen für diesen Benutzer etwas zu akzeptieren. Aber das bedeutet, dass Sie speichern einen zusätzlichen Datenwert für jeden Benutzer.

  

Ich mag das Konzept einer exponentiell ansteigende Zeit zwischen den Versuchen, [...]

Statt mit exponentiell zunehmenden Zeit, man könnte tatsächlich eine randomisierte Verzögerung zwischen aufeinanderfolgenden Versuchen hat.

Vielleicht, wenn Sie erklären, welche Technologie Sie Menschen nutzen wird hier der Lage sein, mit spezifischere Beispiele zu helfen.

Speichern Sie die Informationsserver-Seite. Dies würde ermöglichen es Ihnen, auch gegen verteilte Angriffe zu verteidigen (von mehreren Maschinen kommen).

Sie können gerne die Anmeldung sagen Block für einige Zeit zum Beispiel sagen, 10 Minuten nach 3 Fehlversuchen zum Beispiel. Exponentiell zunehmende Zeit klingt für mich gut. Und ja, speichern die Informationen auf der Serverseite Session oder Datenbank. Datenbank ist besser. Kein Cookies Geschäft, wie es ist einfach durch den Benutzer zu manipulieren.

Sie können auch solche Versuche gegen die Client-IP-adrress abzubilden, da es durchaus möglich ist, dass gültige Benutzer möglicherweise eine blockierte Nachricht erhalten, während jemand anderes gültiges Kennwort des Benutzers mit Fehlversuchen zu erraten versucht.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top