node.js - best - Verhindern von Brute Force mit Knoten und Express JS



express rate limit (3)

Vielleicht hilft dir so etwas beim Einstieg.

var failures = {};

function tryToLogin() {
    var f = failures[remoteIp];
    if (f && Date.now() < f.nextTry) {
        // Throttled. Can't try yet.
        return res.error();
    }

    // Otherwise do login
    ...
}

function onLoginFail() {
    var f = failures[remoteIp] = failures[remoteIp] || {count: 0, nextTry: new Date()};
    ++f.count;
    f.nextTry.setTime(Date.now() + 2000 * f.count); // Wait another two seconds for every failed attempt
}

function onLoginSuccess() { delete failures[remoteIp]; }

// Clean up people that have given up
var MINS10 = 600000, MINS30 = 3 * MINS10;
setInterval(function() {
    for (var ip in failures) {
        if (Date.now() - failures[ip].nextTry > MINS10) {
            delete failures[ip];
        }
    }
}, MINS30);

https://src-bin.com

Ich baue eine Website mit Node und Express JS und möchte ungültige Anmeldeversuche drosseln. Beides, um Online-Cracking zu verhindern und unnötige Datenbankaufrufe zu reduzieren. Auf welche Weise kann ich das umsetzen?


Answer #1

Nach einigen Recherchen war ich nicht in der Lage, eine Lösung zu finden, die mir gefiel. Also schrieb ich meine eigene, basierend auf Trevors Lösung und Express-Brute. Sie können es hier finden .


Answer #2

Werfen Sie einen Blick darauf: https://github.com/AdamPflug/express-brute A brute-force protection middleware for express routes that rate-limits incoming requests, increasing the delay with each request in a fibonacci-like sequence.





brute-force