Use ConstantTimeCompare when comparing token. (#27007)
Этот коммит содержится в:
@@ -4,6 +4,7 @@
|
|||||||
package app
|
package app
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"crypto/subtle"
|
||||||
"errors"
|
"errors"
|
||||||
"math"
|
"math"
|
||||||
"net/http"
|
"net/http"
|
||||||
@@ -57,7 +58,7 @@ func (a *App) GetCloudSession(token string) (*model.Session, *model.AppError) {
|
|||||||
|
|
||||||
func (a *App) GetRemoteClusterSession(token string, remoteId string) (*model.Session, *model.AppError) {
|
func (a *App) GetRemoteClusterSession(token string, remoteId string) (*model.Session, *model.AppError) {
|
||||||
rc, appErr := a.GetRemoteCluster(remoteId)
|
rc, appErr := a.GetRemoteCluster(remoteId)
|
||||||
if appErr == nil && rc.Token == token {
|
if appErr == nil && subtle.ConstantTimeCompare([]byte(rc.Token), []byte(token)) == 1 {
|
||||||
// Need a bare-bones session object for later checks
|
// Need a bare-bones session object for later checks
|
||||||
session := &model.Session{
|
session := &model.Session{
|
||||||
Token: token,
|
Token: token,
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user