Ist es sicher, ein JWT als Abfrageparameter einer GET-Anforderung in die URL einzufügen?

75

Ist es sicher, ein jwt (json web token) als Abfrageparameter einer GET-Anfrage in die URL einzufügen?

Allen Kim
quelle

Antworten:

84

Es kann unter folgenden Umständen sicher sein:

  1. Das JWT wird nur einmal verwendet
  2. Die jtiund expAnsprüche sind im Token vorhanden
  3. Der Empfänger implementiert den Wiedergabeschutz ordnungsgemäß mit jtiundexp

Wenn es jedoch als Token verwendet wird, das wiederholt verwendet werden kann, z. B. gegen eine API, ist die Angabe als Abfrageparameter weniger bevorzugt, da es möglicherweise in Protokollen und Systemprozessinformationen landet, die anderen Benutzern mit Zugriff auf den Server oder zur Verfügung stehen Client-System. In diesem Fall ist es besser, es als Teil eines Headers oder eines POST-Parameters darzustellen.

Wenn Sie es in den Abfrageparametern verwenden, können Sie außerdem auf Einschränkungen der URL-Größe in Browsern oder Servern stoßen. Die Verwendung in einem Header bietet mehr Speicherplatz. Die Verwendung als POST-Parameter funktioniert am besten.

Hans Z.
quelle
12
Außerdem können nicht geschulte Benutzer eine URL mit dem Token kopieren und einfügen, was zu einer grundsätzlich unbeabsichtigten Entführung von Sitzungen führen kann.
Grau
1
Wenn der Endpunkt REST ist, müssen Sie in vielen Fällen die GET-Methode verwenden. Außerdem können Sie Ajax nicht einmal verwenden, wenn die Anfrage heruntergeladen werden soll.
Stanley Luo
1
Was ist mit einer einigermaßen kurzen exp<2 min. plus eine zweite Weiterleitung (nachdem die jwtvon der App gesammelt wurde)? Die zweite Umleitung, um Probleme beim Kopieren und Einfügen einfach zu vermeiden. Wenn Ihr Browser kompromittiert ist, bewahrt Sie selbst ein Header nicht vor dem Diebstahl Ihres Tokens.
Dave Jensen
1
Warum darf der Token nur einmal sein?
Dave Hillier
12
Da das Token ein Abfrageparameter ist, kann es in Serverprotokollen, Browserprotokollen oder Referer-Headern landen, und jemand könnte es von dort abrufen und versuchen, es wiederzuverwenden.
Hans Z.