{"id":519,"date":"2026-10-01T14:45:00","date_gmt":"2026-10-01T12:45:00","guid":{"rendered":"https:\/\/www.lukaswojcik.com\/?page_id=519"},"modified":"2026-09-25T10:49:13","modified_gmt":"2026-09-25T08:49:13","slug":"hartung-der-web-infrastruktur-dritte-skripte-per-content-security-policy","status":"publish","type":"post","link":"https:\/\/www.lukaswojcik.com\/blog\/de\/data-privacy-de\/tutorials-de-data-privacy-de\/hartung-der-web-infrastruktur-dritte-skripte-per-content-security-policy\/","title":{"rendered":"H\u00e4rtung der Web-Infrastruktur: Dritte Skripte per Content Security Policy (CSP) kontrollieren"},"content":{"rendered":"<h2>Architektur-\u00dcberblick: Angriffsvektoren durch Drittanbieter-Skript-Injektionen<\/h2>\n<p>Moderne Webanwendungen und WordPress-Installationen nutzen regelm\u00e4\u00dfig JavaScript-Dateien von Drittanbietern f\u00fcr Analyse-Zwecke, Tag-Management, eingebettete Medien und Marketing-Automatisierung. Jede externe Skriptquelle, die in das Document Object Model (DOM) geladen wird, vergr\u00f6\u00dfert jedoch die Angriffsfl\u00e4che. Kompromittierte Content Delivery Networks (CDNs), Supply-Chain-Angriffe auf JavaScript-Bibliotheken oder b\u00f6sartige Browser-Erweiterungen k\u00f6nnen unbemerkt nicht autorisierte Skripte in die aktive Browsersitzung einschleusen.<\/p>\n<p>Ohne architektonische Kontrollen auf HTTP-Header-Ebene f\u00fchren Browser jedes im DOM vorhandene Skript ausnahmslos aus. Dies birgt erhebliche Risiken f\u00fcr Cross-Site Scripting (XSS), DOM-Scraping und unbefugte Datenexfiltration (z. B. Form-Skimming oder Cookie-Diebstahl). Die Implementierung einer restriktiven <strong>Content Security Policy (CSP)<\/strong> etabliert ein unver\u00e4nderliches Berechtigungssystem direkt im Client-Browser, das garantiert, dass ausschlie\u00dflich explizit autorisierte Domains und kryptografische Hashes Code ausf\u00fchren oder Daten \u00fcbertragen d\u00fcrfen.<\/p>\n<figure class=\"lw-diagram\">\n<img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/diagrams\/csp-kontrolle-fremder-skripte-de.png\" width=\"1120\" height=\"560\" alt=\"Ablauf der Content Security Policy: Header aus Nginx und WordPress, vom Browser ausgewertet in erlaubte und blockierte Ressourcen\"><figcaption>So greift die Richtlinie: Der Header kommt aus Nginx, WordPress dient als Fallback. Der Browser gleicht anschlie\u00dfend jede Ressource mit den Direktiven ab \u2014 <code>googletagmanager.com<\/code> steht auf der Erlaubnisliste, eingeschleuste Skripte und <code>object<\/code>-Einbettungen nicht.<\/figcaption><\/figure>\n<h2>Schritt-f\u00fcr-Schritt-Implementierungsanleitung<\/h2>\n<h3>Schritt 1: Vollst\u00e4ndiges Skript- und Endpunkt-Audit durchf\u00fchren<\/h3>\n<p>Vor der Aktivierung eines blockierenden CSP-Headers m\u00fcssen s\u00e4mtliche legitimen Domain-Abh\u00e4ngigkeiten inventarisiert werden. In einer WordPress-v7.0.2-Umgebung mit professionellem Tag-Management und serverseitigem Tracking identifiziert ein Audit typischerweise folgende Basis-Direktiven:<\/p>\n<ul>\n<li><code>default-src 'self'<\/code> \u2013 Beschr\u00e4nkt das Laden von Standard-Ressourcen strikt auf die eigene Domain.<\/li>\n<li><code>script-src 'self'<\/code> \u2013 Erlaubt ausschlie\u00dflich Skripte, die vom prim\u00e4ren Server stammen.<\/li>\n<li><code>connect-src 'self'<\/code> \u2013 Begrenzt REST-API-, Fetch- und XHR-Verbindungen auf vertrauensw\u00fcrdige Endpunkte.<\/li>\n<li><code>img-src 'self' data:<\/code> \u2013 Gestattet lokale Grafiken und eingebettete Base64-Daten-URIs.<\/li>\n<\/ul>\n<h3>Schritt 2: Konzeption einer CSP-Richtlinie mit minimalen Privilegien<\/h3>\n<p>Um das Einschleusen unerw\u00fcnschter Tracking-Skripte zu blockieren, gleichzeitig aber den Betrieb autorisierter Systeme (wie Google Tag Manager, GA4, Matomo oder einen eigenen Server-Side-GTM-Endpunkt) zu gew\u00e4hrleisten, m\u00fcssen strikte Whitelists definiert werden. Eine sichere Baseline-Konfiguration f\u00fcr Enterprise-Analytics-Anforderungen lautet:<\/p>\n<pre><code>default-src 'self';\nscript-src 'self' 'unsafe-inline' https:\/\/www.googletagmanager.com https:\/\/cdn.matomo.cloud;\nimg-src 'self' data: https:\/\/www.google-analytics.com https:\/\/www.googletagmanager.com;\nconnect-src 'self' https:\/\/www.google-analytics.com https:\/\/region1.google-analytics.com https:\/\/matomo.cloud https:\/\/tracking.lukaswojcik.com;\nframe-src 'self' https:\/\/www.youtube.com;\nobject-src 'none';\nbase-uri 'self';\nform-action 'self';<\/code><\/pre>\n<p><em>Hinweis:<\/em> Die Verwendung von <code>'unsafe-inline'<\/code> innerhalb von <code>script-src<\/code> sollte in Hochsicherheitsumgebungen durch dynamische kryptografische Nonces oder SHA-256-Skripthashes ersetzt werden.<\/p>\n<h3>Schritt 3: Server-Deployment \u00fcber Nginx-Konfiguration<\/h3>\n<p>Aus Performance-Gr\u00fcnden sollten CSP-Header direkt vom Webserver gesendet werden, anstatt sie auf Anwendungsebene von PHP erzeugen zu lassen. Die Integration im SSL-Server-Block von Nginx garantiert die Ausf\u00fchrung noch vor der PHP-Verarbeitung:<\/p>\n<pre><code># \/etc\/nginx\/sites-available\/lukaswojcik.com.conf\nserver {\n    listen 443 ssl http2;\n    server_name www.lukaswojcik.com lukaswojcik.com;\n\n    # Strikte CSP-Header-Durchsetzung\n    add_header Content-Security-Policy \"default-src 'self'; script-src 'self' 'unsafe-inline' https:\/\/www.googletagmanager.com https:\/\/cdn.matomo.cloud; img-src 'self' data: https:\/\/www.google-analytics.com https:\/\/www.googletagmanager.com; connect-src 'self' https:\/\/www.google-analytics.com https:\/\/region1.google-analytics.com https:\/\/matomo.cloud https:\/\/tracking.lukaswojcik.com; frame-src 'self' https:\/\/www.youtube.com; object-src 'none'; base-uri 'self'; form-action 'self';\" always;\n    \n    add_header X-Content-Type-Options \"nosniff\" always;\n    add_header X-Frame-Options \"SAMEORIGIN\" always;\n}<\/code><\/pre>\n<p>Nach der Anpassung der Nginx-Konfiguration sind eine Syntaxpr\u00fcfung und ein Service-Reload zwingend erforderlich:<\/p>\n<pre><code>nginx -t &amp;&amp; systemctl reload nginx<\/code><\/pre>\n<h3>Schritt 4: Applikations-Fallback \u00fcber WordPress functions.php<\/h3>\n<p>Falls kein Root-Zugriff auf die Nginx-Konfiguration besteht, l\u00e4sst sich der identische CSP-Header \u00fcber PHP w\u00e4hrend des WordPress-Request-Zyklus ausliefern, indem folgende Logik in die Datei <code>functions.php<\/code> des aktiven Themes eingebunden wird:<\/p>\n<pre><code>\/**\n * Content Security Policy Header Enforcement\n * Zielsystem: WordPress v7.0.2\n *\/\nadd_action( 'send_headers', 'lw_enforce_content_security_policy' );\n\nfunction lw_enforce_content_security_policy() {\n    if ( ! is_admin() ) {\n        $csp = \"default-src 'self'; \" .\n               \"script-src 'self' 'unsafe-inline' https:\/\/www.googletagmanager.com https:\/\/cdn.matomo.cloud; \" .\n               \"img-src 'self' data: https:\/\/www.google-analytics.com https:\/\/www.googletagmanager.com; \" .\n               \"connect-src 'self' https:\/\/www.google-analytics.com https:\/\/region1.google-analytics.com https:\/\/matomo.cloud https:\/\/tracking.lukaswojcik.com; \" .\n               \"frame-src 'self' https:\/\/www.youtube.com; \" .\n               \"object-src 'none'; \" .\n               \"base-uri 'self'; \" .\n               \"form-action 'self';\";\n        \n        header( 'Content-Security-Policy: ' . $csp );\n    }\n}<\/code><\/pre>\n<h3>Schritt 5: Qualit\u00e4tssicherung und Report-Only-Testlauf<\/h3>\n<p>Vor der Aktivierung strikter Blockaden im Live-Betrieb empfiehlt sich ein Deployment als <code>Content-Security-Policy-Report-Only<\/code>. Dadurch werden Richtlinienverst\u00f6\u00dfe in der Browser-Konsole protokolliert, ohne dass Skripte gestoppt werden.<\/p>\n<p>Die Verifikation muss mittels der Browser-Entwicklertools (F12) erfolgen:<\/p>\n<ol>\n<li><strong>Pr\u00fcfung der Netzwerk-Header:<\/strong> Den Netzwerk-Tab \u00f6ffnen, die Seite neu laden und best\u00e4tigen, dass der HTTP-Response-Header den vollst\u00e4ndigen <code>Content-Security-Policy<\/code>-String enth\u00e4lt.<\/li>\n<li><strong>Konsolen-Analyse auf Anomalien:<\/strong> Den Konsolen-Tab \u00fcberwachen. Nicht freigegebene Tracking-Tags erzeugen sofort deutliche rote CSP-Fehlermeldungen. Inhaltsskripte von Browser-Erweiterungen unterliegen der CSP der Seite dagegen nicht; gegen die Richtlinie gepr\u00fcft wird nur, was sie als Skript-Element in die Seite einf\u00fcgen.<\/li>\n<li><strong>Validierung der Tracking-Endpunkte:<\/strong> Sicherstellen, dass serverseitige Tracking-Requests an eigene Analytics-Subdomains mit dem HTTP-Statuscode 200 ohne Verbindungsabbruch verarbeitet werden.<\/li>\n<\/ol>\n<h2>Zusammenfassung und resultierender Mehrwert<\/h2>\n<p><strong>Was sich damit erreichen l\u00e4sst:<\/strong> Die unkontrollierte Ausf\u00fchrung beliebiger JavaScript-Dateien im DOM wird durch eine kryptografisch abgesicherte, dom\u00e4nenspezifische Whitelist auf Ebene der Browser-Security-Engine abgel\u00f6st.<\/p>\n<p><strong>Resultierender Mehrwert:<\/strong><\/p>\n<ul>\n<li><strong>Schutz vor Supply-Chain-Angriffen:<\/strong> Kompromittierte externe JavaScript-Bibliotheken oder fremde Drittanbieter-Skripte werden sofort an der Ausf\u00fchrung und Datenexfiltration gehindert.<\/li>\n<li><strong>DSGVO- und Datenschutz-Konformit\u00e4t:<\/strong> Unautorisierte Tracking-Pixel und Piggyback-Tags werden systematisch blockiert, bevor eine Verbindung zu externen Werbenetzwerken entsteht.<\/li>\n<li><strong>H\u00e4rtung von Formularen und Sitzungen:<\/strong> Die Restriktion von <code>connect-src<\/code> und <code>form-action<\/code> verhindert Form-Skimming und Credential-Harvesting auf s\u00e4mtlichen WordPress-Seiten.<\/li>\n<\/ul>\n<div class=\"lw-faq\">\n<h2>Fragen und Antworten<\/h2>\n<h3>Warum fehlt die CSP aus der Nginx-Konfiguration auf manchen Adressen?<\/h3>\n<p>Wegen der Vererbungsregel von add_header. Nginx \u00fcbernimmt add_header-Anweisungen aus dem server-Block nur in location-Bl\u00f6cke, die selbst keine einzige add_header-Anweisung enthalten. Setzt ein location-Block etwa f\u00fcr Bilder, Schriften oder PHP einen eigenen Header wie Cache-Control, entfallen dort alle Header aus dem server-Block, auch Content-Security-Policy, X-Content-Type-Options und X-Frame-Options.<\/p>\n<p>Das bleibt oft lange unbemerkt, weil die Pr\u00fcfung aus Schritt 5 meist an einer HTML-Seite erfolgt. Sicherer ist eine Stichprobe je location-Block, also auch f\u00fcr Bilder, Skripte und die Adressen, die PHP ausliefert.<\/p>\n<p>Abhilfe schafft, die Header in jedem location-Block zu wiederholen, der eigene add_header-Zeilen hat, am einfachsten \u00fcber eine gemeinsame Datei, die per include eingebunden wird.<\/p>\n<h3>Was passiert, wenn Nginx und die functions.php beide eine CSP senden?<\/h3>\n<p>Dann gelten beide. Der Browser setzt mehrere Content-Security-Policy-Header nicht zu einer Richtlinie zusammen, sondern pr\u00fcft jede Ressource gegen jede von ihnen; geladen wird nur, was alle erlauben. Eine Domain, die nur in einer der beiden Fassungen steht, bleibt also blockiert. Das passiert leicht, wenn eine Quelle nur an einer Stelle nachgetragen wird, etwa in der Nginx-Konfiguration, aber nicht in der functions.php.<\/p>\n<p>Umgekehrt kann der Header aus der functions.php fehlen, obwohl der Code stimmt. Ein Seitencache, der fertige HTML-Dateien direkt vom Webserver ausliefert, ohne PHP zu starten, liefert sie ohne diesen Header aus, sofern er die Kopfzeilen nicht mitspeichert. Wer die Richtlinie \u00fcber PHP setzt, sollte deshalb auch eine Seite aus dem Cache pr\u00fcfen, nicht nur eine frisch erzeugte.<\/p>\n<h3>Wie lassen sich Verst\u00f6\u00dfe erfassen, die nur bei echten Besuchern auftreten?<\/h3>\n<p>\u00dcber eine Meldeadresse in der Richtlinie. Die Konsole zeigt Verst\u00f6\u00dfe nur im Browser dessen, der gerade pr\u00fcft; mit der Anweisung report-uri oder dem neueren report-to samt Header Reporting-Endpoints schicken die Browser der Besucher jeden Versto\u00df als JSON an einen eigenen Endpunkt, auch im Report-Only-Betrieb. Solche Meldungen enthalten auch Rauschen, etwa von Browser-Erweiterungen, und sollten deshalb nach Quelle ausgewertet werden statt nach blo\u00dfer Anzahl.<\/p>\n<\/div>\n<div class=\"lw-quellen\">\n<h2>Quellen<\/h2>\n<ul>\n<li><a href=\"https:\/\/owasp.org\/www-project-top-ten\/\" target=\"_blank\" rel=\"noopener noreferrer\">OWASP Top 10<\/a><\/li>\n<li><a href=\"https:\/\/developer.wordpress.org\/reference\/hooks\/\" target=\"_blank\" rel=\"noopener noreferrer\">WordPress functions.php \/ hooks reference<\/a><\/li>\n<\/ul>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Technische Anleitung zur Absicherung von WordPress-v7.0.2-Installationen gegen unautorisierte Skript-Injektionen und Tracking-Pixel durch strikte Content-Security-Policy-Header (CSP).<\/p>\n","protected":false},"author":1,"featured_media":18850,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[122],"tags":[92268,92032,92235,92071,92277],"class_list":["post-519","post","type-post","status-publish","format-standard","hentry","category-tutorials-de-data-privacy-de","tag-javascript-de","tag-tracking-de","tag-tutorial-de","tag-web-security-de","tag-wordpress-de"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>H\u00e4rtung der Web-Infrastruktur: Dritte Skripte per Content Security Policy (CSP) kontrollieren | Lukas Wojcik<\/title>\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\/data-privacy-de\/tutorials-de-data-privacy-de\/hartung-der-web-infrastruktur-dritte-skripte-per-content-security-policy\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"H\u00e4rtung der Web-Infrastruktur: Dritte Skripte per Content Security Policy (CSP) kontrollieren | Lukas Wojcik\" \/>\n<meta property=\"og:description\" content=\"Technische Anleitung zur Absicherung von WordPress-v7.0.2-Installationen gegen unautorisierte Skript-Injektionen und Tracking-Pixel durch strikte Content-Security-Policy-Header (CSP).\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.lukaswojcik.com\/blog\/de\/data-privacy-de\/tutorials-de-data-privacy-de\/hartung-der-web-infrastruktur-dritte-skripte-per-content-security-policy\/\" \/>\n<meta property=\"og:site_name\" content=\"Lukas Wojcik - Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-10-01T12:45:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-519-hartung-der-web-infrastruktur-dritte-k.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=\"3 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\\\/data-privacy-de\\\/tutorials-de-data-privacy-de\\\/hartung-der-web-infrastruktur-dritte-skripte-per-content-security-policy\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/data-privacy-de\\\/tutorials-de-data-privacy-de\\\/hartung-der-web-infrastruktur-dritte-skripte-per-content-security-policy\\\/\"},\"author\":{\"name\":\"Lukas Wojcik\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"headline\":\"H\u00e4rtung der Web-Infrastruktur: Dritte Skripte per Content Security Policy (CSP) kontrollieren\",\"datePublished\":\"2026-10-01T12:45:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/data-privacy-de\\\/tutorials-de-data-privacy-de\\\/hartung-der-web-infrastruktur-dritte-skripte-per-content-security-policy\\\/\"},\"wordCount\":957,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"image\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/data-privacy-de\\\/tutorials-de-data-privacy-de\\\/hartung-der-web-infrastruktur-dritte-skripte-per-content-security-policy\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/hero-519-hartung-der-web-infrastruktur-dritte-k.png\",\"keywords\":[\"JavaScript\",\"Tracking\",\"Tutorial\",\"Web Security\",\"WordPress\"],\"articleSection\":[\"Tutorials\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/data-privacy-de\\\/tutorials-de-data-privacy-de\\\/hartung-der-web-infrastruktur-dritte-skripte-per-content-security-policy\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/data-privacy-de\\\/tutorials-de-data-privacy-de\\\/hartung-der-web-infrastruktur-dritte-skripte-per-content-security-policy\\\/\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/data-privacy-de\\\/tutorials-de-data-privacy-de\\\/hartung-der-web-infrastruktur-dritte-skripte-per-content-security-policy\\\/\",\"name\":\"H\u00e4rtung der Web-Infrastruktur: Dritte Skripte per Content Security Policy (CSP) kontrollieren | Lukas Wojcik\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/data-privacy-de\\\/tutorials-de-data-privacy-de\\\/hartung-der-web-infrastruktur-dritte-skripte-per-content-security-policy\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/data-privacy-de\\\/tutorials-de-data-privacy-de\\\/hartung-der-web-infrastruktur-dritte-skripte-per-content-security-policy\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/hero-519-hartung-der-web-infrastruktur-dritte-k.png\",\"datePublished\":\"2026-10-01T12:45:00+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/data-privacy-de\\\/tutorials-de-data-privacy-de\\\/hartung-der-web-infrastruktur-dritte-skripte-per-content-security-policy\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/data-privacy-de\\\/tutorials-de-data-privacy-de\\\/hartung-der-web-infrastruktur-dritte-skripte-per-content-security-policy\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/data-privacy-de\\\/tutorials-de-data-privacy-de\\\/hartung-der-web-infrastruktur-dritte-skripte-per-content-security-policy\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/hero-519-hartung-der-web-infrastruktur-dritte-k.png\",\"contentUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/hero-519-hartung-der-web-infrastruktur-dritte-k.png\",\"width\":1200,\"height\":630,\"caption\":\"H\u00e4rtung der Web-Infrastruktur: Dritte Skripte per Content Security Policy (CSP) kontrollieren\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/data-privacy-de\\\/tutorials-de-data-privacy-de\\\/hartung-der-web-infrastruktur-dritte-skripte-per-content-security-policy\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"H\u00e4rtung der Web-Infrastruktur: Dritte Skripte per Content Security Policy (CSP) kontrollieren\"}]},{\"@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":"H\u00e4rtung der Web-Infrastruktur: Dritte Skripte per Content Security Policy (CSP) kontrollieren | Lukas Wojcik","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\/data-privacy-de\/tutorials-de-data-privacy-de\/hartung-der-web-infrastruktur-dritte-skripte-per-content-security-policy\/","og_locale":"en_US","og_type":"article","og_title":"H\u00e4rtung der Web-Infrastruktur: Dritte Skripte per Content Security Policy (CSP) kontrollieren | Lukas Wojcik","og_description":"Technische Anleitung zur Absicherung von WordPress-v7.0.2-Installationen gegen unautorisierte Skript-Injektionen und Tracking-Pixel durch strikte Content-Security-Policy-Header (CSP).","og_url":"https:\/\/www.lukaswojcik.com\/blog\/de\/data-privacy-de\/tutorials-de-data-privacy-de\/hartung-der-web-infrastruktur-dritte-skripte-per-content-security-policy\/","og_site_name":"Lukas Wojcik - Blog","article_published_time":"2026-10-01T12:45:00+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-519-hartung-der-web-infrastruktur-dritte-k.png","type":"image\/png"}],"author":"Lukas Wojcik","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Lukas Wojcik","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/data-privacy-de\/tutorials-de-data-privacy-de\/hartung-der-web-infrastruktur-dritte-skripte-per-content-security-policy\/#article","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/data-privacy-de\/tutorials-de-data-privacy-de\/hartung-der-web-infrastruktur-dritte-skripte-per-content-security-policy\/"},"author":{"name":"Lukas Wojcik","@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"headline":"H\u00e4rtung der Web-Infrastruktur: Dritte Skripte per Content Security Policy (CSP) kontrollieren","datePublished":"2026-10-01T12:45:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/data-privacy-de\/tutorials-de-data-privacy-de\/hartung-der-web-infrastruktur-dritte-skripte-per-content-security-policy\/"},"wordCount":957,"commentCount":0,"publisher":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"image":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/data-privacy-de\/tutorials-de-data-privacy-de\/hartung-der-web-infrastruktur-dritte-skripte-per-content-security-policy\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-519-hartung-der-web-infrastruktur-dritte-k.png","keywords":["JavaScript","Tracking","Tutorial","Web Security","WordPress"],"articleSection":["Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.lukaswojcik.com\/blog\/de\/data-privacy-de\/tutorials-de-data-privacy-de\/hartung-der-web-infrastruktur-dritte-skripte-per-content-security-policy\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/data-privacy-de\/tutorials-de-data-privacy-de\/hartung-der-web-infrastruktur-dritte-skripte-per-content-security-policy\/","url":"https:\/\/www.lukaswojcik.com\/blog\/de\/data-privacy-de\/tutorials-de-data-privacy-de\/hartung-der-web-infrastruktur-dritte-skripte-per-content-security-policy\/","name":"H\u00e4rtung der Web-Infrastruktur: Dritte Skripte per Content Security Policy (CSP) kontrollieren | Lukas Wojcik","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/data-privacy-de\/tutorials-de-data-privacy-de\/hartung-der-web-infrastruktur-dritte-skripte-per-content-security-policy\/#primaryimage"},"image":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/data-privacy-de\/tutorials-de-data-privacy-de\/hartung-der-web-infrastruktur-dritte-skripte-per-content-security-policy\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-519-hartung-der-web-infrastruktur-dritte-k.png","datePublished":"2026-10-01T12:45:00+00:00","breadcrumb":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/data-privacy-de\/tutorials-de-data-privacy-de\/hartung-der-web-infrastruktur-dritte-skripte-per-content-security-policy\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.lukaswojcik.com\/blog\/de\/data-privacy-de\/tutorials-de-data-privacy-de\/hartung-der-web-infrastruktur-dritte-skripte-per-content-security-policy\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/data-privacy-de\/tutorials-de-data-privacy-de\/hartung-der-web-infrastruktur-dritte-skripte-per-content-security-policy\/#primaryimage","url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-519-hartung-der-web-infrastruktur-dritte-k.png","contentUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-519-hartung-der-web-infrastruktur-dritte-k.png","width":1200,"height":630,"caption":"H\u00e4rtung der Web-Infrastruktur: Dritte Skripte per Content Security Policy (CSP) kontrollieren"},{"@type":"BreadcrumbList","@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/data-privacy-de\/tutorials-de-data-privacy-de\/hartung-der-web-infrastruktur-dritte-skripte-per-content-security-policy\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.lukaswojcik.com\/blog\/"},{"@type":"ListItem","position":2,"name":"H\u00e4rtung der Web-Infrastruktur: Dritte Skripte per Content Security Policy (CSP) kontrollieren"}]},{"@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\/519","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=519"}],"version-history":[{"count":5,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/519\/revisions"}],"predecessor-version":[{"id":20959,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/519\/revisions\/20959"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media\/18850"}],"wp:attachment":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media?parent=519"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/categories?post=519"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/tags?post=519"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}