İçeriğe geç

JWT Doğrulaması Yok (ARCH5126)

Anahtar go.security.jwt-no-validation · Önem error · Kategori security · CWE CWE-347

JWT’yi imza doğrulaması yapmadan çözmek (ParseUnverified veya alg: none kabulü), saldırganın talepleri serbestçe değiştirmesine olanak tanır. İmza her zaman doğrulanmalıdır.

token, _, _ := new(jwt.Parser).ParseUnverified(
tokenString, jwt.MapClaims{})
claims := token.Claims.(jwt.MapClaims)
token, err := jwt.Parse(tokenString, func(t *jwt.Token) (any, error) {
if _, ok := t.Method.(*jwt.SigningMethodHMAC); !ok {
return nil, errors.New("unexpected alg")
}
return signingKey, nil
})

Parse ile imzayı doğrulayın ve beklenen imzalama algoritmasını açıkça kontrol edin.