İçeriğe geç

Doğrulanmayan JWT (ARCH4126)

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

İmza doğrulaması yapmadan bir JWT’nin gövdesini çözmek (örn. yalnızca payload’ı parse etmek), saldırganların sahte token üretmesine ve kimlik doğrulamayı atlamasına olanak tanır. Token’ı her zaman imza ve talep kontrolüyle doğrulayın.

String[] parts = token.split("\\.");
String payload = new String(Base64.getUrlDecoder().decode(parts[1]));
Claims claims = mapper.readValue(payload, Claims.class); // imza doğrulanmadı
Claims claims = Jwts.parserBuilder()
.setSigningKey(publicKey)
.build()
.parseClaimsJws(token) // imza ve süre doğrulanır
.getBody();

JWT’yi imza anahtarıyla doğrulayan bir parser kullanın; payload’ı doğrulamadan çözmeyin.