{"id":13479,"date":"2026-10-08T12:45:00","date_gmt":"2026-10-08T10:45:00","guid":{"rendered":"https:\/\/www.lukaswojcik.com\/blog\/?p=13479"},"modified":"2026-09-25T09:45:53","modified_gmt":"2026-09-25T07:45:53","slug":"http-security-header-einfach-erklart-welche-schutzen-und-welche-nur","status":"publish","type":"post","link":"https:\/\/www.lukaswojcik.com\/blog\/de\/it-networks-de\/tutorials-de-it-networks-de\/http-security-header-einfach-erklart-welche-schutzen-und-welche-nur\/","title":{"rendered":"HTTP-Security-Header einfach erkl\u00e4rt: Welche sch\u00fctzen und welche nur vorhanden sind"},"content":{"rendered":"<p>Jede Seite, die ein Server ausliefert, kommt mit einem Satz Header &#8211; Zeilen, die dem Inhalt vorauslaufen und dem Browser sagen, wie das Folgende zu behandeln ist. Eine Handvoll davon betrifft die Sicherheit.<\/p>\n<p>Diese Header lassen sich leicht pr\u00fcfen und leicht falsch pr\u00fcfen. Zu z\u00e4hlen, welche Header vorhanden sind, dauert eine Sekunde und ergibt eine Zahl, die wie ein Ergebnis aussieht. Die Zahl sagt fast nichts, denn ein Header kann vorhanden sein, richtig geschrieben und vollkommen wirkungslos.<\/p>\n<figure class=\"lw-diagram\">\n<img decoding=\"async\" src=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/diagrams\/security-header-de.png\" width=\"1120\" height=\"580\" loading=\"lazy\" alt=\"Vier Schutz-Header aus einer Antwort, jeweils mit Wert und tats\u00e4chlicher Wirkung: zwei wirken, zwei heben sich selbst auf\"><figcaption>Alle vier sind vorhanden. Zwei davon sch\u00fctzen nichts.<\/figcaption><\/figure>\n<h2>Was die Schutz-Header sind<\/h2>\n<p>Vier davon tragen die Hauptlast, und jeder beantwortet eine andere Frage.<\/p>\n<p><strong>Content-Security-Policy<\/strong> listet auf, woher die Seite Code laden darf. Alles, was nicht auf der Liste steht, verweigert der Browser &#8211; das ist die wichtigste Abwehr gegen eingeschleuste Skripte.<\/p>\n<p><strong>Strict-Transport-Security<\/strong> weist den Browser an, ab jetzt die verschl\u00fcsselte Verbindung zu nehmen und nie die offene &#8211; auch dann, wenn ein Link, ein Lesezeichen oder eine getippte Adresse etwas anderes sagt.<\/p>\n<p><strong>X-Frame-Options<\/strong> entscheidet, ob die Seite in einem Rahmen auf einer fremden Website eingebettet werden darf, und verhindert damit Klicks auf etwas Unsichtbares.<\/p>\n<p><strong>Referrer-Policy<\/strong> entscheidet, wie viel von der aktuellen Adresse weitergegeben wird, wenn ein Link von der Seite wegf\u00fchrt.<\/p>\n<p>Eine f\u00fcnfte, <strong>Permissions-Policy<\/strong>, schaltet Browserfunktionen ab, welche die Seite nicht braucht &#8211; Kamera, Mikrofon, Standort. Dieser Header ist der seltenste der f\u00fcnf und derjenige, der am wenigsten kaputtmachen kann.<\/p>\n<h2>Die Regel, die unsafe-inline aufhebt<\/h2>\n<p>Die Content-Security-Policy ist die st\u00e4rkste der f\u00fcnf und diejenige, die am h\u00e4ufigsten am eigenen Wert scheitert.<\/p>\n<p>Die Gefahr, f\u00fcr die es sie gibt, ist ein eingeschleustes Skript: etwas, das jemand eingetippt oder ein Angreifer hinterlegt hat, landet in der Seite und l\u00e4uft, als geh\u00f6rte es dazu. CSP verhindert das, indem sie die Quellen benennt, aus denen der Browser Code ausf\u00fchren darf &#8211; und ein direkt in die Seite geschriebenes Skript hat keine Quelle, die sich benennen lie\u00dfe.<\/p>\n<p>Genau das erlaubt <code>'unsafe-inline'<\/code> wieder. Das Wort steht nicht ohne Grund im Wert &#8211; es sagt, was es tut &#8211; und es steht dort, weil eine Seite voller kleiner eingebetteter Skripte ohne diese Erlaubnis aufh\u00f6rt zu funktionieren. Diese Erlaubnis hinzuzuf\u00fcgen ist der schnellste Weg, eine kaputte Seite wieder zum Laufen zu bringen, und gibt genau die Erlaubnis zur\u00fcck, die zu verweigern der Sinn der Regel war.<\/p>\n<p>Eine Regel mit <code>'unsafe-inline'<\/code> blockiert noch ein paar Dinge: von fremden Adressen nachgeladenen Code etwa. Gegen den Angriff, f\u00fcr den es CSP haupts\u00e4chlich gibt, tut sie so gut wie nichts.<\/p>\n<p><code>'unsafe-eval'<\/code> ist dieselbe Geschichte f\u00fcr einen engeren Fall, und ein <code>default-src<\/code> von <code>*<\/code> ist dieselbe Geschichte ganz ohne Vorwand.<\/p>\n<h2>Wie lang eine HSTS-Frist sein muss<\/h2>\n<p>Strict-Transport-Security hat eine Zahl, an der alles h\u00e4ngt: <code>max-age<\/code>, in Sekunden.<\/p>\n<p>Dieser Wert sagt, wie lange der Browser die Anweisung behalten soll. Bis zum Ablauf geht keine offene, unverschl\u00fcsselte Anfrage mehr an diese Domain &#8211; der Browser schreibt sie um, bevor sie den Rechner verl\u00e4sst. Das ist der ganze Schutz, und er h\u00e4lt genau so lange wie die Erinnerung.<\/p>\n<p>Ein <code>max-age<\/code> von 300 erinnert f\u00fcnf Minuten lang. Formal korrekt, in jeder Pr\u00fcfung vorhanden, die Namen z\u00e4hlt, und nutzlos f\u00fcr einen Besuch am n\u00e4chsten Tag. \u00dcblich empfohlen ist ein Jahr, geschrieben als <code>31536000<\/code>.<\/p>\n<p>Zwei Zus\u00e4tze z\u00e4hlen. <code>includeSubDomains<\/code> dehnt die Regel auf jede Unterdomain aus und schlie\u00dft damit die L\u00fccke, durch die ein vergessenes Testsystem auf derselben Domain unverschl\u00fcsselt erreichbar bleibt. Und <code>preload<\/code> bittet darum, die Domain fest in die Browser einzubauen, sodass der Schutz auch den allerersten Besuch abdeckt &#8211; jenen einen Moment, in dem HSTS sonst nicht helfen kann, weil noch nichts gemerkt wurde.<\/p>\n<p>Zu diesem letzten Schritt geh\u00f6rt eine Warnung: Eintr\u00e4ge lassen sich schwer entfernen, und bis eine Entfernung in den Browsern ankommt, vergehen Monate. Er passt zu einer Domain, deren Verschl\u00fcsselung feststeht, nicht zu einer, die gerade noch geordnet wird.<\/p>\n<figure class=\"lw-illu\">\n<img decoding=\"async\" src=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/illustrationen\/illu-security-header.webp\" width=\"1120\" height=\"580\" loading=\"lazy\" alt=\"Vier gleich gro\u00dfe aufrechte Platten: zwei massiv, zwei nur als Umriss\"><br \/>\n<\/figure>\n<h2>Wenn zwei Header dasselbe regeln<\/h2>\n<p>Das Einbetten in Rahmen ist doppelt geregelt, durch zwei unterschiedlich alte Header, und die Regel dar\u00fcber, welcher gewinnt, \u00fcberrascht regelm\u00e4\u00dfig.<\/p>\n<p>X-Frame-Options ist die \u00e4ltere, \u00fcberall verstanden, und bietet <code>DENY<\/code> oder <code>SAMEORIGIN<\/code>. CSP hat <code>frame-ancestors<\/code>, was dieselbe Aufgabe erledigt, aber mit einer Liste von Adressen statt zwei festen M\u00f6glichkeiten.<\/p>\n<p>Sind beide vorhanden, gewinnt <code>frame-ancestors<\/code>, und X-Frame-Options wird vollst\u00e4ndig ignoriert. Nicht zusammengef\u00fchrt, nicht kombiniert &#8211; ignoriert. Eine Seite mit <code>X-Frame-Options: DENY<\/code> und einer CSP mit <code>frame-ancestors *<\/code> l\u00e4sst sich von jedem einbetten, und der strengere der beiden Header hat kein Mitspracherecht.<\/p>\n<p>Das ist der Fehler, der sich am besten versteckt, denn beide Header sind vorhanden, beide richtig geschrieben, und eine Pr\u00fcfung, die Namen z\u00e4hlt, meldet zwei Schutzma\u00dfnahmen, wo eine ist.<\/p>\n<h2>Was bei jedem Klick mitgeht<\/h2>\n<p>Referrer-Policy ist die leiseste der f\u00fcnf und diejenige mit den allt\u00e4glichsten Folgen.<\/p>\n<p>F\u00fchrt ein Link von einer Seite weg, teilt der Browser dem Ziel mit, woher der Besuch kam. Wie viel er mitteilt, legt dieser Header fest. <code>unsafe-url<\/code> gibt die vollst\u00e4ndige Adresse samt Pfad weiter, <code>no-referrer<\/code> gibt nichts weiter, und <code>strict-origin-when-cross-origin<\/code> gibt innerhalb derselben Website die vollst\u00e4ndige Adresse weiter und an fremde nur die Domain.<\/p>\n<p>Im Pfad steckt das Heikle. <code>\/de\/konto\/bestellungen\/48120<\/code> verr\u00e4t eine Kundennummer, ein Link zum Zur\u00fccksetzen eines Passworts verr\u00e4t ein Einmalkennwort, und eine Suchseite verr\u00e4t den Suchbegriff. All das geht an die jeweils verlinkte Website, in einem ganz gew\u00f6hnlichen Header, ohne dass irgendetwas schiefgelaufen w\u00e4re.<\/p>\n<p>Der letzte der drei Werte ist die vern\u00fcnftige Voreinstellung, und moderne Browser wenden sie von sich aus an, wenn der Header fehlt. Damit ist ein ausdr\u00fccklich gesetztes <code>unsafe-url<\/code> schlechter als gar kein Header: es ersetzt eine gute Voreinstellung durch eine schlechte Entscheidung.<\/p>\n<h2>Was ein einziger Abruf zeigt<\/h2>\n<p>All das ist \u00f6ffentlich. Die Header kommen mit jeder Antwort mit, f\u00fcr jede Adresse, und sie zu lesen kostet eine Anfrage.<\/p>\n<p>Vier Fragen lohnen sich. Gibt es eine CSP, und gibt ihr Wert zur\u00fcck, was sie genommen hat. Ist die HSTS-Frist lang genug, um zwischen zwei Besuchen zu \u00fcberdauern. Widersprechen sich die beiden Rahmen-Header, und sagt der gewinnende das Gemeinte. Und gibt die Referrer-Einstellung mehr weiter, als das Ziel braucht.<\/p>\n<p>Der <a href=\"https:\/\/www.lukaswojcik.com\/blog\/de\/werkzeuge\/http-security-header-checker\/\">HTTP-Security-Header-Pr\u00fcfer<\/a> beantwortet alle vier f\u00fcr eine beliebige Adresse. Er holt die Seite einmal, liest die Header so, wie ein Browser sie liest, verfolgt dabei die Weiterleitungen und beurteilt die Werte, statt die Namen zu z\u00e4hlen.<\/p>\n<p>Das brauchbare Ergebnis ist keine Note. Es ist die kurze Liste der Header, die vorhanden sind und nichts tun &#8211; denn genau die werden kein zweites Mal angesehen.<\/p>\n<div class=\"lw-faq\">\n<h2>Fragen und Antworten<\/h2>\n<h3>Wie l\u00e4sst sich &#8216;unsafe-inline&#8217; loswerden, ohne jedes eingebettete Skript auszulagern?<\/h3>\n<p>Mit Nonces oder Hashes. Eine Nonce ist ein zuf\u00e4lliger Wert, der in der CSP als &#8216;nonce-\u2026&#8217; steht und als Attribut an jedem erlaubten Skript; der Browser f\u00fchrt dann nur eingebettete Skripte aus, die diesen Wert tragen. Ein Hash (&#8216;sha256-\u2026&#8217;) erlaubt ein Skript mit genau diesem Inhalt. Ein eingeschleustes Skript kennt den Wert nicht und passt nicht zum Hash, und genau das stellt den Schutz wieder her, den &#8216;unsafe-inline&#8217; aufgehoben hat.<\/p>\n<p>Sobald eine Nonce oder ein Hash in der Regel steht, ignorieren aktuelle Browser ein daneben stehendes &#8216;unsafe-inline&#8217;. Es kann deshalb als R\u00fcckfall f\u00fcr sehr alte Browser stehen bleiben, ohne den Schutz in den \u00fcbrigen aufzuweichen.<\/p>\n<p>Zwei Randbedingungen folgen daraus. Eine Nonce muss f\u00fcr jede Antwort neu erzeugt werden; ein Seitencache, der dieselbe HTML-Seite mit derselben Nonce an alle ausliefert, macht sie bekannt und damit wertlos, weshalb sich Hashes mit Caches besser vertragen. Und Ereignis-Attribute wie onclick decken Nonces gar nicht ab, Hashes nur mit dem zus\u00e4tzlichen Schl\u00fcsselwort &#8216;unsafe-hashes&#8217;; sauberer ist der Umzug in Skripte. Bis alles stimmt, zeigt der Header Content-Security-Policy-Report-Only, was eine Regel blockieren w\u00fcrde, ohne es zu blockieren.<\/p>\n<h3>Wirkt ein HSTS-Header, der \u00fcber eine unverschl\u00fcsselte Verbindung kommt?<\/h3>\n<p>Nein. Browser beachten Strict-Transport-Security nur in Antworten \u00fcber HTTPS und \u00fcbergehen den Header in einer unverschl\u00fcsselten Antwort, weil ihn dort jeder unterwegs h\u00e4tte einf\u00fcgen oder entfernen k\u00f6nnen. Die Antwort auf http:\/\/ sollte deshalb nur auf HTTPS weiterleiten, und der Header geh\u00f6rt in die Antwort, zu der diese Weiterleitung f\u00fchrt.<\/p>\n<h3>Was geschieht, wenn Webserver und Anwendung beide eine CSP senden?<\/h3>\n<p>Beide gelten. Der Browser f\u00fchrt sie nicht zu einer gemeinsamen Regel zusammen, sondern pr\u00fcft jede f\u00fcr sich, und eine Quelle wird nur geladen, wenn alle Regeln sie erlauben. Eine zweite, lockere CSP kann eine strenge also nicht aufweichen; eine vergessene strenge Regel, etwa in der Konfiguration des Webservers, blockiert dagegen Dinge, welche die Anwendung in ihrer eigenen Regel ausdr\u00fccklich erlaubt.<\/p>\n<p>Bei Strict-Transport-Security ist es anders: Kommt der Header doppelt, wertet der Browser nach RFC 6797 nur den ersten aus. Wer Header an mehreren Stellen setzt, etwa im Webserver, in einem Plugin und in einem CDN, sollte deshalb die tats\u00e4chlich ausgelieferte Antwort pr\u00fcfen und nicht die einzelnen Konfigurationen.<\/p>\n<h3>L\u00e4sst sich frame-ancestors auch in einem meta-Element setzen?<\/h3>\n<p>Nein. Eine CSP im meta-Element versteht frame-ancestors nicht, ebenso wenig report-uri und sandbox, und auch X-Frame-Options wirkt nur als echter Header. Der Schutz vor dem Einbetten braucht deshalb immer eine Einstellung am Server oder im CDN.<\/p>\n<\/div>\n<div class=\"lw-quellen\">\n<h2>Quellen<\/h2>\n<ul>\n<li><a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/HTTP\/Guides\/CSP\" target=\"_blank\" rel=\"noopener noreferrer\">MDN: Content Security Policy<\/a><\/li>\n<li><a href=\"https:\/\/www.rfc-editor.org\/rfc\/rfc9110.html\" target=\"_blank\" rel=\"noopener noreferrer\">RFC 9110: HTTP Semantics<\/a><\/li>\n<li><a href=\"https:\/\/www.rfc-editor.org\/rfc\/rfc6797.html\" target=\"_blank\" rel=\"noopener noreferrer\">RFC 6797: HTTP Strict Transport Security<\/a><\/li>\n<\/ul>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Schutz-Header werden viel zu oft nach ihren Namen gepr\u00fcft. Der Name sagt, dass eine Regel da ist; erst der Wert sagt, ob sie etwas bewirkt &#8211; und manche Werte heben genau die Regel auf, zu der sie geh\u00f6ren.<\/p>\n","protected":false},"author":1,"featured_media":16113,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[139],"tags":[92340,92235,92071],"class_list":["post-13479","post","type-post","status-publish","format-standard","hentry","category-tutorials-de-it-networks-de","tag-server-administration-de","tag-tutorial-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>HTTP-Security-Header einfach erkl\u00e4rt: Welche sch\u00fctzen und welche nur vorhanden sind | Lukas Wojcik<\/title>\n<meta name=\"description\" content=\"Was die HTTP-Schutz-Header tun, warum eine Content-Security-Policy mit unsafe-inline fast nichts sch\u00fctzt und wie sich die Werte lesen lassen statt die Namen gez\u00e4hlt.\" \/>\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\/it-networks-de\/tutorials-de-it-networks-de\/http-security-header-einfach-erklart-welche-schutzen-und-welche-nur\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"HTTP-Security-Header einfach erkl\u00e4rt: Welche sch\u00fctzen und welche nur vorhanden sind | Lukas Wojcik\" \/>\n<meta property=\"og:description\" content=\"Was die HTTP-Schutz-Header tun, warum eine Content-Security-Policy mit unsafe-inline fast nichts sch\u00fctzt und wie sich die Werte lesen lassen statt die Namen gez\u00e4hlt.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.lukaswojcik.com\/blog\/de\/it-networks-de\/tutorials-de-it-networks-de\/http-security-header-einfach-erklart-welche-schutzen-und-welche-nur\/\" \/>\n<meta property=\"og:site_name\" content=\"Lukas Wojcik - Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-10-08T10:45:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-13479-http-security-header-einfach-erklaer-nz.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=\"Lukas Wojcik\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Lukas Wojcik\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 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\\\/it-networks-de\\\/tutorials-de-it-networks-de\\\/http-security-header-einfach-erklart-welche-schutzen-und-welche-nur\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/it-networks-de\\\/tutorials-de-it-networks-de\\\/http-security-header-einfach-erklart-welche-schutzen-und-welche-nur\\\/\"},\"author\":{\"name\":\"Lukas Wojcik\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"headline\":\"HTTP-Security-Header einfach erkl\u00e4rt: Welche sch\u00fctzen und welche nur vorhanden sind\",\"datePublished\":\"2026-10-08T10:45:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/it-networks-de\\\/tutorials-de-it-networks-de\\\/http-security-header-einfach-erklart-welche-schutzen-und-welche-nur\\\/\"},\"wordCount\":1540,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"image\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/it-networks-de\\\/tutorials-de-it-networks-de\\\/http-security-header-einfach-erklart-welche-schutzen-und-welche-nur\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/hero-13479-http-security-header-einfach-erklaer-nz.png\",\"keywords\":[\"Server Administration\",\"Tutorial\",\"Web Security\"],\"articleSection\":[\"Tutorials\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/it-networks-de\\\/tutorials-de-it-networks-de\\\/http-security-header-einfach-erklart-welche-schutzen-und-welche-nur\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/it-networks-de\\\/tutorials-de-it-networks-de\\\/http-security-header-einfach-erklart-welche-schutzen-und-welche-nur\\\/\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/it-networks-de\\\/tutorials-de-it-networks-de\\\/http-security-header-einfach-erklart-welche-schutzen-und-welche-nur\\\/\",\"name\":\"HTTP-Security-Header einfach erkl\u00e4rt: Welche sch\u00fctzen und welche nur vorhanden sind | Lukas Wojcik\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/it-networks-de\\\/tutorials-de-it-networks-de\\\/http-security-header-einfach-erklart-welche-schutzen-und-welche-nur\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/it-networks-de\\\/tutorials-de-it-networks-de\\\/http-security-header-einfach-erklart-welche-schutzen-und-welche-nur\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/hero-13479-http-security-header-einfach-erklaer-nz.png\",\"datePublished\":\"2026-10-08T10:45:00+00:00\",\"description\":\"Was die HTTP-Schutz-Header tun, warum eine Content-Security-Policy mit unsafe-inline fast nichts sch\u00fctzt und wie sich die Werte lesen lassen statt die Namen gez\u00e4hlt.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/it-networks-de\\\/tutorials-de-it-networks-de\\\/http-security-header-einfach-erklart-welche-schutzen-und-welche-nur\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/it-networks-de\\\/tutorials-de-it-networks-de\\\/http-security-header-einfach-erklart-welche-schutzen-und-welche-nur\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/it-networks-de\\\/tutorials-de-it-networks-de\\\/http-security-header-einfach-erklart-welche-schutzen-und-welche-nur\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/hero-13479-http-security-header-einfach-erklaer-nz.png\",\"contentUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/hero-13479-http-security-header-einfach-erklaer-nz.png\",\"width\":1200,\"height\":630,\"caption\":\"HTTP-Security-Header einfach erkl\u00e4rt: Welche sch\u00fctzen und welche nur vorhanden sind\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/it-networks-de\\\/tutorials-de-it-networks-de\\\/http-security-header-einfach-erklart-welche-schutzen-und-welche-nur\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"HTTP-Security-Header einfach erkl\u00e4rt: Welche sch\u00fctzen und welche nur vorhanden sind\"}]},{\"@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\":\"Lukas Wojcik\",\"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\":\"Lukas Wojcik\"},\"logo\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\"},\"sameAs\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"HTTP-Security-Header einfach erkl\u00e4rt: Welche sch\u00fctzen und welche nur vorhanden sind | Lukas Wojcik","description":"Was die HTTP-Schutz-Header tun, warum eine Content-Security-Policy mit unsafe-inline fast nichts sch\u00fctzt und wie sich die Werte lesen lassen statt die Namen gez\u00e4hlt.","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\/it-networks-de\/tutorials-de-it-networks-de\/http-security-header-einfach-erklart-welche-schutzen-und-welche-nur\/","og_locale":"en_US","og_type":"article","og_title":"HTTP-Security-Header einfach erkl\u00e4rt: Welche sch\u00fctzen und welche nur vorhanden sind | Lukas Wojcik","og_description":"Was die HTTP-Schutz-Header tun, warum eine Content-Security-Policy mit unsafe-inline fast nichts sch\u00fctzt und wie sich die Werte lesen lassen statt die Namen gez\u00e4hlt.","og_url":"https:\/\/www.lukaswojcik.com\/blog\/de\/it-networks-de\/tutorials-de-it-networks-de\/http-security-header-einfach-erklart-welche-schutzen-und-welche-nur\/","og_site_name":"Lukas Wojcik - Blog","article_published_time":"2026-10-08T10:45:00+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-13479-http-security-header-einfach-erklaer-nz.png","type":"image\/png"}],"author":"Lukas Wojcik","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Lukas Wojcik","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/it-networks-de\/tutorials-de-it-networks-de\/http-security-header-einfach-erklart-welche-schutzen-und-welche-nur\/#article","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/it-networks-de\/tutorials-de-it-networks-de\/http-security-header-einfach-erklart-welche-schutzen-und-welche-nur\/"},"author":{"name":"Lukas Wojcik","@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"headline":"HTTP-Security-Header einfach erkl\u00e4rt: Welche sch\u00fctzen und welche nur vorhanden sind","datePublished":"2026-10-08T10:45:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/it-networks-de\/tutorials-de-it-networks-de\/http-security-header-einfach-erklart-welche-schutzen-und-welche-nur\/"},"wordCount":1540,"commentCount":0,"publisher":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"image":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/it-networks-de\/tutorials-de-it-networks-de\/http-security-header-einfach-erklart-welche-schutzen-und-welche-nur\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-13479-http-security-header-einfach-erklaer-nz.png","keywords":["Server Administration","Tutorial","Web Security"],"articleSection":["Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.lukaswojcik.com\/blog\/de\/it-networks-de\/tutorials-de-it-networks-de\/http-security-header-einfach-erklart-welche-schutzen-und-welche-nur\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/it-networks-de\/tutorials-de-it-networks-de\/http-security-header-einfach-erklart-welche-schutzen-und-welche-nur\/","url":"https:\/\/www.lukaswojcik.com\/blog\/de\/it-networks-de\/tutorials-de-it-networks-de\/http-security-header-einfach-erklart-welche-schutzen-und-welche-nur\/","name":"HTTP-Security-Header einfach erkl\u00e4rt: Welche sch\u00fctzen und welche nur vorhanden sind | Lukas Wojcik","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/it-networks-de\/tutorials-de-it-networks-de\/http-security-header-einfach-erklart-welche-schutzen-und-welche-nur\/#primaryimage"},"image":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/it-networks-de\/tutorials-de-it-networks-de\/http-security-header-einfach-erklart-welche-schutzen-und-welche-nur\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-13479-http-security-header-einfach-erklaer-nz.png","datePublished":"2026-10-08T10:45:00+00:00","description":"Was die HTTP-Schutz-Header tun, warum eine Content-Security-Policy mit unsafe-inline fast nichts sch\u00fctzt und wie sich die Werte lesen lassen statt die Namen gez\u00e4hlt.","breadcrumb":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/it-networks-de\/tutorials-de-it-networks-de\/http-security-header-einfach-erklart-welche-schutzen-und-welche-nur\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.lukaswojcik.com\/blog\/de\/it-networks-de\/tutorials-de-it-networks-de\/http-security-header-einfach-erklart-welche-schutzen-und-welche-nur\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/it-networks-de\/tutorials-de-it-networks-de\/http-security-header-einfach-erklart-welche-schutzen-und-welche-nur\/#primaryimage","url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-13479-http-security-header-einfach-erklaer-nz.png","contentUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-13479-http-security-header-einfach-erklaer-nz.png","width":1200,"height":630,"caption":"HTTP-Security-Header einfach erkl\u00e4rt: Welche sch\u00fctzen und welche nur vorhanden sind"},{"@type":"BreadcrumbList","@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/it-networks-de\/tutorials-de-it-networks-de\/http-security-header-einfach-erklart-welche-schutzen-und-welche-nur\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.lukaswojcik.com\/blog\/"},{"@type":"ListItem","position":2,"name":"HTTP-Security-Header einfach erkl\u00e4rt: Welche sch\u00fctzen und welche nur vorhanden sind"}]},{"@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":"Lukas Wojcik","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":"Lukas Wojcik"},"logo":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg"},"sameAs":["https:\/\/www.lukaswojcik.com\/blog"]}]}},"_links":{"self":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/13479","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=13479"}],"version-history":[{"count":4,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/13479\/revisions"}],"predecessor-version":[{"id":21700,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/13479\/revisions\/21700"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media\/16113"}],"wp:attachment":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media?parent=13479"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/categories?post=13479"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/tags?post=13479"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}