web-dev-qa-db-fra.com

Quelle est la taille maximale du jeton JWT?

J'ai besoin de connaître la longueur maximale de

Jeton Web JSON (JWT)

Dans les spécifications, il n'y a aucune information à ce sujet. Pourrait-il être, il n'y a pas de limite de longueur?

86
Bogdan

Comme vous l'avez dit, aucune longueur maximale n'est définie dans la RFC7519 ( https://tools.ietf.org/html/rfc7519 ) ni dans d'autres RFC liées à JWS ou JWE.

Si vous utilisez le format Serialized JSON ou le format Serialized JSON Flattened, il n'y a pas de limitation et il n'y a aucune raison de définir une limitation.

Toutefois, si vous utilisez le format Serialized JSON Compact (le format le plus courant), vous devez garder à l’esprit qu’il doit être aussi court que possible, car il est principalement utilisé dans un contexte Web. Un JWT de 4ko est quelque chose que vous devriez éviter.

Veillez à ne stocker que les revendications utiles et les informations d’en-tête.

51
Florent Morselli

J'ai aussi essayé de trouver ceci.

Je dirais - essayez de vous assurer qu'il est inférieur à 7 Ko .

Bien que JWT ne définisse aucune limite supérieure dans la spécification ( http://www.rfc-editor.org/rfc/rfc7519.txt ), nous avons certaines limites opérationnelles. Comme un JWT est inclus dans un en-tête HTTP, nous avons une limite supérieure ( SO: maximum sur les valeurs d'en-tête http ) de 8 Ko sur la majorité des serveurs actuels.

Comme cela inclut tous les en-têtes de requête <8 Ko, 7 Ko offrant un espace raisonnable pour les autres en-têtes. Le plus gros risque à cette limite serait les cookies (envoyés dans les en-têtes et peuvent devenir volumineux).

Comme elle est cryptée et en base 64, au moins 33% de la chaîne json originale est gaspillée, il est donc important de vérifier la longueur du dernier jeton crypté.

Un dernier point - les mandataires et autres appareils de réseau peuvent appliquer une limite aléatoire au passage ...

70
penderi

Lorsque vous utilisez heroku , l'en-tête sera limité à 8k. Selon la quantité de données que vous utilisez sur jwt2, elles seront atteintes. La requête, lorsqu'elle est surdimensionnée, ne touchera pas votre instance de noeud, le routeur heroku la déposera avant votre couche d'API.

Lors du traitement d'une demande entrante, un routeur configure un tampon de réception de 8 Ko et commence à lire la ligne de requête HTTP et les en-têtes de requête. Chacun de ces éléments peut avoir une longueur maximale de 8 Ko, mais ensemble, il peut dépasser 8 Ko au total. Les demandes contenant une ligne de requête ou une ligne d'en-tête de plus de 8 Ko seront abandonnées par le routeur sans être envoyées.

Voir: Limites Herok

3
Tiago Gouvêa