mirror of
https://github.com/ngoduykhanh/wireguard-ui.git
synced 2025-04-19 19:59:13 +03:00
Use ConstantTimeCompare to make the login more secure and not leak information about the used password (#205)
This commit is contained in:
parent
f43c59c043
commit
97652be545
1 changed files with 5 additions and 2 deletions
|
@ -1,6 +1,7 @@
|
|||
package handler
|
||||
|
||||
import (
|
||||
"crypto/subtle"
|
||||
"encoding/base64"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
|
@ -49,7 +50,9 @@ func Login(db store.IStore) echo.HandlerFunc {
|
|||
return c.JSON(http.StatusInternalServerError, jsonHTTPResponse{false, "Cannot query user from DB"})
|
||||
}
|
||||
|
||||
if user.Username == dbuser.Username && user.Password == dbuser.Password {
|
||||
userCorrect := subtle.ConstantTimeCompare([]byte(user.Username), []byte(dbuser.Username)) == 1
|
||||
passwordCorrect := subtle.ConstantTimeCompare([]byte(user.Password), []byte(dbuser.Password)) == 1
|
||||
if userCorrect && passwordCorrect {
|
||||
// TODO: refresh the token
|
||||
sess, _ := session.Get("session", c)
|
||||
sess.Options = &sessions.Options{
|
||||
|
|
Loading…
Add table
Reference in a new issue