Frage

Ich bin ein einfaches Anmeldeformular in ASP.net MVC Gestaltung 1.0 Ich möchte den Benutzername, damit entwertet werden, während der Benutzer (gemäß den damit verbundenen Fragen unter unten stehenden Link) ist die Eingabe

Das ist alles andere als einfach genug. Aber was sind die Auswirkungen auf die Sicherheit einer solchen Funktion?

Wie kann ich vermeiden Missbrauch von Menschen dieses Abkratzen der Liste der gültigen Benutzername zu bestimmen?

einige verwandte Fragen: 1 , 2

War es hilfreich?

Lösung

Um zu verhindern, gegen „schädliche“ Aktivitäten auf einige meiner internen Ajax Sachen, füge ich zwei GET-Variablen man das Datum (in der Regel in der Epoche), dann nehme ich das Datum ein Salz und SHA1, fügen und auch, dass Post, wenn das Datum (wenn rehashed) nicht mit dem Hash dann lasse ich die Anforderung es sonst erfüllen.

Natürlich kann ich die Verschlüsselung, bevor die Seite gerendert wird und übergeben Sie den Hash und Datum an die JS. Sonst wäre es sinnlos.

Das Problem bei der Verwendung von IP / Cookies in Ihrem Browser Grenze ist, dass beide umgangen werden können. Mit Hilfe eines Token-Verfahren mit einem guten, starken kryptographisch, Salz (so etwas sagen wie ein von Steve Gibson „Perfect Passwörter“ https://www.grc.com/passwords.htm ) wäre es eine riesige Menge an Zeit in Anspruch nehmen (auf der Skala von Jahrzehnten), bevor das Verfahren zuverlässig und es vorhergesagt werden könnte für eine gewisse Sicherheit Menge gewährleistet.

Andere Tipps

Sie die Anzahl der Anträge auf vielleicht 2 pro 10 Sekunden begrenzen könnte oder so (ein echter Benutzer einen Namen setzen kann, die getroffen wird, und ändern Sie es ein bisschen und versuchen Sie es erneut). Art wie wie SO du nicht mehr nicht lassen Kommentar als einmal alle 30 Sekunden.

Wenn Sie es wirklich besorgt sind, können Sie eine Methode, die oben zu nehmen und zählen, wie oft sie in einer bestimmten Zeitperiode versucht, und wenn es geht über einer Schwelle, treten sie auf eine andere Seite.

Validierte wie in: „Dieser Benutzername ist bereits vergeben“? Wenn Sie die Anzahl der Anfragen pro Sekunde begrenzen sollte es helfen,

Ein üblicher Weg, dies zu lösen, ist einfach durch eine Verzögerung bei der Anfrage hinzufügen. Wenn die Anfrage an den Server gesendet wird, warten Sie 1 (oder mehr) Sekunden zu reagieren, dann reagieren mit dem Ergebnis (wenn der Name gültig ist oder nicht).

eine Zeitschranke Hinzufügen wirklich nicht bewirken Benutzer nicht zu kratzen versucht, und Sie haben eine 60-Anfragen pro Minute Limit kostenlos bekommen.

Bulding auf die Antwort von Unkwntech zur Verfügung gestellt, die einige ziemlich solide Beratung ist.

Sie können einen Schritt weiter gehen und der Client einige Berechnung machen führen die Rückkehr Hash zu schaffen -. Dies nur einige einfache arithmatic wie subtrating ein paar Zahlen sein könnte, und fügte hinzu, die Daten und Multiplikation mit 2

Der zusätzliche arithmatic bedeutet einen Out-of-Box-Benutzername Schaben Skript unwahrscheinlich ist, den Client in größere CPU mit bis zu arbeiten und zwingt.

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