{"id":10340,"date":"2026-09-03T12:45:00","date_gmt":"2026-09-03T10:45:00","guid":{"rendered":"https:\/\/www.lukaswojcik.com\/blog\/?p=10340"},"modified":"2026-08-19T10:53:48","modified_gmt":"2026-08-19T08:53:48","slug":"ein-jwt-ist-unterschrieben-nicht-verschluesselt","status":"publish","type":"post","link":"https:\/\/www.lukaswojcik.com\/blog\/de\/web-entwicklung\/ein-jwt-ist-unterschrieben-nicht-verschluesselt\/","title":{"rendered":"Ein JWT ist unterschrieben, nicht verschl\u00fcsselt"},"content":{"rendered":"<p>Ein JSON Web Token sieht verschl\u00fcsselt aus. Es ist eine lange Zeichenfolge ohne lesbare W\u00f6rter, es steht in einem <code>Authorization<\/code>-Header, und es wird wie ein Geheimnis behandelt. Was es tats\u00e4chlich ist: zwei JSON-Objekte in Base64, dazu eine Signatur &#8211; und Base64 ist eine Kodierung, kein Schloss.<\/p>\n<p>Die Folge ist kurz. Alles im Rumpf liest jeder, der das Token hat: der Browser, an den es ging, der Proxy, durch den es lief, die Protokolldatei, die die Adresse festhielt, und das Ticket, in das es jemand hineinkopiert hat. Das ist kein Mangel, sondern die Bauart des Formats. Zum Problem wird es erst, wenn der Rumpf geschrieben wird, als l\u00e4se niemand mit.<\/p>\n<figure class=\"lw-diagram\">\n<img decoding=\"async\" src=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/diagrams\/jwt-lesen-de.png\" width=\"1120\" height=\"580\" loading=\"lazy\" alt=\"Ein Token in seine drei durch Punkte getrennten Teile zerlegt, Kopf und Rumpf als lesbares JSON entschl\u00fcsselt und als f\u00fcr jeden lesbar gekennzeichnet, die Signatur als einziger sch\u00fctzender Teil markiert\"><figcaption>Zwei der drei Teile liest jeder. Der dritte ist der einzige, der \u00fcberhaupt etwas sch\u00fctzt.<\/figcaption><\/figure>\n<h2>Die drei Teile und was jeder leistet<\/h2>\n<p>Ein Token besteht aus drei durch Punkte getrennten Abschnitten. Der erste nennt das Verfahren und oft den verwendeten Schl\u00fcssel. Der zweite tr\u00e4gt die Anspr\u00fcche &#8211; \u00fcber wen das Token spricht, was es erlaubt, wie lange es gilt. Der dritte ist die Signatur \u00fcber die ersten beiden.<\/p>\n<p>Allein der dritte sch\u00fctzt etwas, und er sch\u00fctzt genau eine Eigenschaft: dass die ersten beiden seit dem Unterschreiben unver\u00e4ndert sind. Er verbirgt sie nicht, und es braucht ihn nicht zu verstehen, um sie zu lesen. Ein Token in einen beliebigen Decoder eingef\u00fcgt gibt seinen Inhalt sofort preis.<\/p>\n<h2>Was im Rumpf nichts zu suchen hat<\/h2>\n<p>Jedes Feld im Rumpf ist ein Feld, das dem Besitzer des Tokens ausgeh\u00e4ndigt wird. Eine E-Mail-Adresse, ein vollst\u00e4ndiger Name, ein Geburtsdatum &#8211; damit wird aus einem Ausweis eine Datenweitergabe, und sie landet an Orten, die Ausweise erreichen und personenbezogene Daten nicht sollten: Proxy-Protokolle, Browserspeicher, Fehlerberichte.<\/p>\n<p>Die zweite Sorte ist innere Struktur. Eine Rollenliste wie <code>billing_admin<\/code> oder eine Mandantennummer verr\u00e4t, was hinter der Schnittstelle existiert und wie es geordnet ist &#8211; genau das, was ein Angreifer zuerst aufz\u00e4hlt. Ein knapper Betreff und ein Bereich gen\u00fcgen meist; der Rest geh\u00f6rt in die Abfrage, die der Server ohnehin macht.<\/p>\n<p>Die dritte ist alles, was nur f\u00fcr den Aussteller gedacht war. Tokens werden in Tickets kopiert, und ein Rumpf mit einer internen Kundennummer wandert mit.<\/p>\n<h2>exp ist das Einzige, das ein Token beendet<\/h2>\n<p>Ein Token gilt, weil es das von sich behauptet. Es gibt keinen Zustand auf dem Server, der es beendet: einmal ausgestellt, wirkt es, bis der Anspruch <code>exp<\/code> verstrichen ist, und ein Token ohne <code>exp<\/code> wirkt f\u00fcr immer.<\/p>\n<p>Deshalb macht das Abmelden nichts ung\u00fcltig. Der Client verwirft das Token, das Token bleibt g\u00fcltig, und wer eine Kopie behalten hat, beh\u00e4lt den Zugang. Ein Token vor seiner Zeit zu beenden verlangt eine Sperrliste, die jeder Dienst pr\u00fcft &#8211; womit genau der gemeinsame Zustand zur\u00fcckkommt, den das Format vermeiden sollte.<\/p>\n<p>Die brauchbare Anordnung ist ein kurzlebiges Zugriffstoken und ein zentral widerrufbares Auffrischungstoken. Minuten f\u00fcr das erste und f\u00fcr das zweite eine Laufzeit, die tats\u00e4chlich jemand im Blick hat: ein Auffrischungstoken mit einem Jahr G\u00fcltigkeit ist ein Passwort mit Zwischenschritten.<\/p>\n<h2>Wo Lesen mit Pr\u00fcfen verwechselt wird<\/h2>\n<p>Ein Token zu lesen und ihm zu trauen sind verschiedene Vorg\u00e4nge, und der Unterschied ist ein Bibliotheksaufruf. Ein Decoder zeigt die Anspr\u00fcche jedes Tokens, auch eines, das vor drei Sekunden von Hand geschrieben wurde. Die Pr\u00fcfung rechnet die Signatur gegen einen Schl\u00fcssel nach, und erst sie beantwortet, ob die Anspr\u00fcche von jemandem stammen, der sie ausstellen durfte.<\/p>\n<p>Aus der Verwechslung folgen zwei Fehlerbilder. Das erste ist <code>alg: none<\/code> &#8211; ein Token, das erkl\u00e4rt, es habe keine Signatur. Ein Pr\u00fcfer, der das Verfahren aus dem Token liest und sich daran h\u00e4lt, nimmt alles an; das Verfahren muss die Anwendung festlegen und nicht das Token. Das zweite ist derselbe Fehler mit einem Schl\u00fcssel: ein Dienst, der RS256 erwartet und ein HS256-Token bekommt, l\u00e4sst sich dazu bringen, es mit dem \u00f6ffentlichen Schl\u00fcssel als gemeinsamem Geheimnis zu pr\u00fcfen &#8211; und der \u00f6ffentliche Schl\u00fcssel ist \u00f6ffentlich.<\/p>\n<h2>Was in jedes Token geh\u00f6rt<\/h2>\n<p>Auf drei Anspr\u00fcche lohnt es zu bestehen. <code>exp<\/code>, weil ohne ihn nichts endet. <code>iss<\/code>, damit ein Dienst erkennt, von welchem Aussteller ein Token kommt, statt alles anzunehmen, was sich pr\u00fcfen l\u00e4sst. Und <code>aud<\/code> &#8211; jener Anspruch, der verhindert, dass ein f\u00fcr die Berichtsschnittstelle ausgestelltes Token von der Abrechnungsschnittstelle angenommen wird; eine Pr\u00fcfung, die sich leicht auslassen und schwer vermissen l\u00e4sst.<\/p>\n<p>F\u00fcr nichts davon braucht es Werkzeug im gro\u00dfen Stil. Ein Token an seinen Punkten zu teilen und den mittleren Teil zu entschl\u00fcsseln dauert Sekunden und beantwortet die Fragen, die sonst durch Annahme beantwortet werden: wie lange das gilt, was es erlaubt und was es jedem verr\u00e4t, der es liest.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wer ein Token besitzt, liest seinen Rumpf. Welche Felder darin folglich nichts zu suchen haben, warum exp das Einzige ist, das ein Token beendet, und wo Lesen mit Pr\u00fcfen verwechselt wird.<\/p>\n","protected":false},"author":1,"featured_media":13870,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[150],"tags":[92048,92071],"class_list":["post-10340","post","type-post","status-publish","format-standard","hentry","category-web-entwicklung","tag-rest-api-de","tag-web-security-de"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Ein JWT ist unterschrieben, nicht verschl\u00fcsselt - Lukas Wojcik - Blog<\/title>\n<meta name=\"description\" content=\"Base64 ist kein Schutz: was in einen JWT-Rumpf geh\u00f6rt und was nicht, warum ein Token ohne exp nie abl\u00e4uft und wie alg none aus dem Pr\u00fcfen ein Lesen macht.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.lukaswojcik.com\/blog\/de\/web-entwicklung\/ein-jwt-ist-unterschrieben-nicht-verschluesselt\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Ein JWT ist unterschrieben, nicht verschl\u00fcsselt - Lukas Wojcik - Blog\" \/>\n<meta property=\"og:description\" content=\"Base64 ist kein Schutz: was in einen JWT-Rumpf geh\u00f6rt und was nicht, warum ein Token ohne exp nie abl\u00e4uft und wie alg none aus dem Pr\u00fcfen ein Lesen macht.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.lukaswojcik.com\/blog\/de\/web-entwicklung\/ein-jwt-ist-unterschrieben-nicht-verschluesselt\/\" \/>\n<meta property=\"og:site_name\" content=\"Lukas Wojcik - Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-09-03T10:45:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-10340-ein-jwt-ist-unterschrieben-nicht-ver-g.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"luky\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"luky\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/web-entwicklung\\\/ein-jwt-ist-unterschrieben-nicht-verschluesselt\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/web-entwicklung\\\/ein-jwt-ist-unterschrieben-nicht-verschluesselt\\\/\"},\"author\":{\"name\":\"luky\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"headline\":\"Ein JWT ist unterschrieben, nicht verschl\u00fcsselt\",\"datePublished\":\"2026-09-03T10:45:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/web-entwicklung\\\/ein-jwt-ist-unterschrieben-nicht-verschluesselt\\\/\"},\"wordCount\":801,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"image\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/web-entwicklung\\\/ein-jwt-ist-unterschrieben-nicht-verschluesselt\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/hero-10340-ein-jwt-ist-unterschrieben-nicht-ver-g.png\",\"keywords\":[\"REST API\",\"Web Security\"],\"articleSection\":[\"Web Entwicklung\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/web-entwicklung\\\/ein-jwt-ist-unterschrieben-nicht-verschluesselt\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/web-entwicklung\\\/ein-jwt-ist-unterschrieben-nicht-verschluesselt\\\/\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/web-entwicklung\\\/ein-jwt-ist-unterschrieben-nicht-verschluesselt\\\/\",\"name\":\"Ein JWT ist unterschrieben, nicht verschl\u00fcsselt - Lukas Wojcik - Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/web-entwicklung\\\/ein-jwt-ist-unterschrieben-nicht-verschluesselt\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/web-entwicklung\\\/ein-jwt-ist-unterschrieben-nicht-verschluesselt\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/hero-10340-ein-jwt-ist-unterschrieben-nicht-ver-g.png\",\"datePublished\":\"2026-09-03T10:45:00+00:00\",\"description\":\"Base64 ist kein Schutz: was in einen JWT-Rumpf geh\u00f6rt und was nicht, warum ein Token ohne exp nie abl\u00e4uft und wie alg none aus dem Pr\u00fcfen ein Lesen macht.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/web-entwicklung\\\/ein-jwt-ist-unterschrieben-nicht-verschluesselt\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/web-entwicklung\\\/ein-jwt-ist-unterschrieben-nicht-verschluesselt\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/web-entwicklung\\\/ein-jwt-ist-unterschrieben-nicht-verschluesselt\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/hero-10340-ein-jwt-ist-unterschrieben-nicht-ver-g.png\",\"contentUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/hero-10340-ein-jwt-ist-unterschrieben-nicht-ver-g.png\",\"width\":1200,\"height\":630,\"caption\":\"Ein JWT ist unterschrieben, nicht verschl\u00fcsselt\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/web-entwicklung\\\/ein-jwt-ist-unterschrieben-nicht-verschluesselt\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Ein JWT ist unterschrieben, nicht verschl\u00fcsselt\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\",\"name\":\"Lukas Wojcik - Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\",\"name\":\"luky\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"contentUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"width\":424,\"height\":636,\"caption\":\"luky\"},\"logo\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\"},\"sameAs\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\"],\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/author\\\/luky\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Ein JWT ist unterschrieben, nicht verschl\u00fcsselt - Lukas Wojcik - Blog","description":"Base64 ist kein Schutz: was in einen JWT-Rumpf geh\u00f6rt und was nicht, warum ein Token ohne exp nie abl\u00e4uft und wie alg none aus dem Pr\u00fcfen ein Lesen macht.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.lukaswojcik.com\/blog\/de\/web-entwicklung\/ein-jwt-ist-unterschrieben-nicht-verschluesselt\/","og_locale":"en_US","og_type":"article","og_title":"Ein JWT ist unterschrieben, nicht verschl\u00fcsselt - Lukas Wojcik - Blog","og_description":"Base64 ist kein Schutz: was in einen JWT-Rumpf geh\u00f6rt und was nicht, warum ein Token ohne exp nie abl\u00e4uft und wie alg none aus dem Pr\u00fcfen ein Lesen macht.","og_url":"https:\/\/www.lukaswojcik.com\/blog\/de\/web-entwicklung\/ein-jwt-ist-unterschrieben-nicht-verschluesselt\/","og_site_name":"Lukas Wojcik - Blog","article_published_time":"2026-09-03T10:45:00+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-10340-ein-jwt-ist-unterschrieben-nicht-ver-g.png","type":"image\/png"}],"author":"luky","twitter_card":"summary_large_image","twitter_misc":{"Written by":"luky","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/web-entwicklung\/ein-jwt-ist-unterschrieben-nicht-verschluesselt\/#article","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/web-entwicklung\/ein-jwt-ist-unterschrieben-nicht-verschluesselt\/"},"author":{"name":"luky","@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"headline":"Ein JWT ist unterschrieben, nicht verschl\u00fcsselt","datePublished":"2026-09-03T10:45:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/web-entwicklung\/ein-jwt-ist-unterschrieben-nicht-verschluesselt\/"},"wordCount":801,"commentCount":0,"publisher":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"image":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/web-entwicklung\/ein-jwt-ist-unterschrieben-nicht-verschluesselt\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-10340-ein-jwt-ist-unterschrieben-nicht-ver-g.png","keywords":["REST API","Web Security"],"articleSection":["Web Entwicklung"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.lukaswojcik.com\/blog\/de\/web-entwicklung\/ein-jwt-ist-unterschrieben-nicht-verschluesselt\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/web-entwicklung\/ein-jwt-ist-unterschrieben-nicht-verschluesselt\/","url":"https:\/\/www.lukaswojcik.com\/blog\/de\/web-entwicklung\/ein-jwt-ist-unterschrieben-nicht-verschluesselt\/","name":"Ein JWT ist unterschrieben, nicht verschl\u00fcsselt - Lukas Wojcik - Blog","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/web-entwicklung\/ein-jwt-ist-unterschrieben-nicht-verschluesselt\/#primaryimage"},"image":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/web-entwicklung\/ein-jwt-ist-unterschrieben-nicht-verschluesselt\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-10340-ein-jwt-ist-unterschrieben-nicht-ver-g.png","datePublished":"2026-09-03T10:45:00+00:00","description":"Base64 ist kein Schutz: was in einen JWT-Rumpf geh\u00f6rt und was nicht, warum ein Token ohne exp nie abl\u00e4uft und wie alg none aus dem Pr\u00fcfen ein Lesen macht.","breadcrumb":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/web-entwicklung\/ein-jwt-ist-unterschrieben-nicht-verschluesselt\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.lukaswojcik.com\/blog\/de\/web-entwicklung\/ein-jwt-ist-unterschrieben-nicht-verschluesselt\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/web-entwicklung\/ein-jwt-ist-unterschrieben-nicht-verschluesselt\/#primaryimage","url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-10340-ein-jwt-ist-unterschrieben-nicht-ver-g.png","contentUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-10340-ein-jwt-ist-unterschrieben-nicht-ver-g.png","width":1200,"height":630,"caption":"Ein JWT ist unterschrieben, nicht verschl\u00fcsselt"},{"@type":"BreadcrumbList","@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/web-entwicklung\/ein-jwt-ist-unterschrieben-nicht-verschluesselt\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.lukaswojcik.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Ein JWT ist unterschrieben, nicht verschl\u00fcsselt"}]},{"@type":"WebSite","@id":"https:\/\/www.lukaswojcik.com\/blog\/#website","url":"https:\/\/www.lukaswojcik.com\/blog\/","name":"Lukas Wojcik - Blog","description":"","publisher":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.lukaswojcik.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9","name":"luky","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","contentUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","width":424,"height":636,"caption":"luky"},"logo":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg"},"sameAs":["https:\/\/www.lukaswojcik.com\/blog"],"url":"https:\/\/www.lukaswojcik.com\/blog\/author\/luky\/"}]}},"_links":{"self":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/10340","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/comments?post=10340"}],"version-history":[{"count":1,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/10340\/revisions"}],"predecessor-version":[{"id":12028,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/10340\/revisions\/12028"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media\/13870"}],"wp:attachment":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media?parent=10340"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/categories?post=10340"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/tags?post=10340"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}