İçeriğe geç

JWT Doğrulamasının Yapılmaması (ARCH7126)

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

İmza doğrulaması yapmadan JWT çözmek (payload’ı doğrudan okumak veya alg: none kabul etmek), saldırganın istediği claim’lerle sahte token üretmesine olanak tanır.

<?php
[$header, $payload, $sig] = explode('.', $token);
$claims = json_decode(base64_decode($payload), true); // imza doğrulanmadı
$userId = $claims['sub'];
<?php
$claims = JWT::decode($token, new Key(getenv('JWT_KEY'), 'HS256')); // imza doğrulanır
$userId = $claims->sub;

JWT’leri her zaman beklenen algoritma ve anahtarla doğrulayın; none algoritmasını ve doğrulamasız çözmeyi reddedin.