Merge pull request #7787 from zmstone/0426-bad-password-penalty
fix: add 2 seconds delay penalty for bad logins
This commit is contained in:
commit
c5329d7f60
|
@ -183,13 +183,21 @@ check(Username, Password) ->
|
||||||
case lookup_user(Username) of
|
case lookup_user(Username) of
|
||||||
[#mqtt_admin{password = PwdHash}] ->
|
[#mqtt_admin{password = PwdHash}] ->
|
||||||
case is_valid_pwd(PwdHash, Password) of
|
case is_valid_pwd(PwdHash, Password) of
|
||||||
true -> ok;
|
true ->
|
||||||
false -> {error, <<"Username/Password error">>}
|
ok;
|
||||||
|
false ->
|
||||||
|
ok = bad_login_penalty(),
|
||||||
|
{error, <<"Username/Password error">>}
|
||||||
end;
|
end;
|
||||||
[] ->
|
[] ->
|
||||||
|
ok = bad_login_penalty(),
|
||||||
{error, <<"Username/Password error">>}
|
{error, <<"Username/Password error">>}
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
bad_login_penalty() ->
|
||||||
|
timer:sleep(2000),
|
||||||
|
ok.
|
||||||
|
|
||||||
is_valid_pwd(<<Salt:4/binary, Hash/binary>>, Password) ->
|
is_valid_pwd(<<Salt:4/binary, Hash/binary>>, Password) ->
|
||||||
Hash =:= md5_hash(Salt, Password).
|
Hash =:= md5_hash(Salt, Password).
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue