21 lines
573 B
JavaScript
21 lines
573 B
JavaScript
// https://www.codewars.com/kata/implement-brute-force-protection/javascript
|
|
|
|
const bruteForceDetected = (() => {
|
|
const failedAttemps = {};
|
|
return loginReq => {
|
|
if (loginReq.successful) {
|
|
if (loginReq.sourceIP in failedAttemps) {
|
|
failedAttemps[loginReq.sourceIP] = 0;
|
|
}
|
|
return false;
|
|
}
|
|
if (loginReq.sourceIP in failedAttemps) {
|
|
const cnt = failedAttemps[loginReq.sourceIP] + 1;
|
|
failedAttemps[loginReq.sourceIP] = cnt;
|
|
return 20 <= cnt;
|
|
}
|
|
failedAttemps[loginReq.sourceIP] = 1;
|
|
return false;
|
|
};
|
|
})();
|