Fehlversuche zählen
Teil des Abschnitts Authentifizierung und Sicherheit der Node.js-Journey von Coddy. Lektion 21 von 24.
Ein Anmeldeversuchsbegrenzer muss fehlgeschlagene Versuche über mehrere Anfragen hinweg speichern. Eine Map speichert Werte unter Schlüsseln. Verwende jeden Benutzernamen als Schlüssel, damit sich Fehlversuche für ein Konto nicht auf ein anderes Konto auswirken.
const counts = new Map();
const old = counts.get('bo') ?? 0;
counts.set('bo', old + 1);counts.get(key) gibt bei einem fehlenden Schlüssel undefined zurück, sodass der Fallback den Zähler bei null beginnen lässt. Platziere die Map außerhalb der Anfragefunktion, damit sie erhalten bleibt, während dieser Server läuft. Jede Anfrage in dieser Übung stellt einen fehlgeschlagenen Versuch dar. Der Ablauf wird in einem separaten Schritt ergänzt; diese Map zählt derzeit weiter, bis Run den Server neu startet.
Aufgabe
EinfachDies ist ein kleines Übungsprojekt. Die Einrichtung ist bereits vorhanden; bearbeite nur exercise.js.
Erhöhe den Zähler für den angegebenen Benutzernamen und gib ihn in count zurück. Sende zweimal POST mit {"username":"ada"} an /result: Die Zählerstände sind zuerst 1 und dann 2. Mit bo als Benutzernamen ergibt das Senden 1; ein erneutes Senden mit ada ergibt 3.
Erstelle die Map selbst und platziere sie so, dass die zweite Anfrage den ersten Zählerstand sehen kann. Wenn du erneut auf „Ausführen“ klickst, wird der Server neu gestartet und dieser In-Memory-Speicher geleert.
Probier es selbst
// Erstelle den Speicher für die Zählerstände so, dass er zwischen Anfragen erhalten bleibt.
export function exercise({ username }) {
return { count: 0 };
}
Alle Lektionen in Authentifizierung und Sicherheit
1Passwörter
Bytes und Hex-TextEinen Passwortschlüssel ableitenEin neues SaltPasswörter niemals speichernSchlüssel-Bytes vergleichenEin Passwort überprüfenRegeln für die Registrierung4Eigentümer und Sicherheit
Nur deine NotizenAdmin-RollenÜbe selbstständig: Express-Playground