fix: add 2 seconds delay penalty for bad logins

This commit is contained in:
Zaiming (Stone) Shi 2022-04-26 21:02:45 +02:00
parent 0d43bd6243
commit 4f45670725
1 changed files with 10 additions and 2 deletions

View File

@ -183,13 +183,21 @@ check(Username, Password) ->
case lookup_user(Username) of
[#mqtt_admin{password = PwdHash}] ->
case is_valid_pwd(PwdHash, Password) of
true -> ok;
false -> {error, <<"Username/Password error">>}
true ->
ok;
false ->
ok = bad_login_penalty(),
{error, <<"Username/Password error">>}
end;
[] ->
ok = bad_login_penalty(),
{error, <<"Username/Password error">>}
end.
bad_login_penalty() ->
timer:sleep(2000),
ok.
is_valid_pwd(<<Salt:4/binary, Hash/binary>>, Password) ->
Hash =:= md5_hash(Salt, Password).