{"id":2538,"date":"2019-11-01T22:16:30","date_gmt":"2019-11-01T21:16:30","guid":{"rendered":"https:\/\/vielhuber.de\/?p=2538"},"modified":"2019-11-01T22:33:04","modified_gmt":"2019-11-01T21:33:04","slug":"cookies-kontrollieren-mit-php-und-js","status":"publish","type":"post","link":"https:\/\/vielhuber.de\/blog\/cookies-kontrollieren-mit-php-und-js\/","title":{"rendered":"Cookies kontrollieren mit PHP und JS"},"content":{"rendered":"\n<p>Das Setzen von Cookies durch eigene oder fremde Skripte l\u00e4sst sich sowohl mit Hilfe von PHP und JavaScript fein steuern. Obwohl dies keine ausreichende L\u00f6sung f\u00fcr die Umsetzung von Cookie-L\u00f6sungen nach dem <a rel=\"noreferrer noopener\" aria-label=\"Gerichtsurteil gegen Planet49 (opens in a new tab)\" href=\"http:\/\/curia.europa.eu\/juris\/document\/document.jsf?text=&amp;docid=218462&amp;pageIndex=0&amp;doclang=de&amp;mode=req&amp;dir=&amp;occ=first&amp;part=1&amp;cid=1388503\" target=\"_blank\">Gerichtsurteil gegen Planet49<\/a> darstellt (hier ist es entscheidend, dass Tracking-Tools wie Google Analytics gar nicht erst nicht mittracken und damit in der Folge auch keine Cookies setzen), kann es sinnvoll sein, Cookies generell zu white-\/blacklisten.<\/p>\n\n\n\n<!--more-->\n\n\n\n<p>In PHP ist dies einfach zu bewerkstelligen: Hier modifiziert\/l\u00f6scht man etwaig gesetzte <a rel=\"noreferrer noopener\" aria-label=\"Set-Cookie-Header (opens in a new tab)\" href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/HTTP\/Headers\/Set-Cookie\" target=\"_blank\">Set-Cookie-Header<\/a>. Ruft man folgendes Script auf, nachdem mit Hilfe von <a href=\"https:\/\/www.php.net\/manual\/de\/function.setcookie.php\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\">setcookie<\/a> Cookies f\u00fcr den Response Header vorbereitet wurden, werden nicht gew\u00fcnschte Header entfernt und damit diese Cookies gar nicht erst gesetzt. Au\u00dferdem werden in der Vergangenheit gesetzte Cookies (z.B. falls das Prevention-Script aus irgendeinem Grund nicht gegriffen hat), ebenfalls gel\u00f6scht.<\/p>\n\n\n\n<p class=\"githubgist\" data-gist-file=\"script.php\">8b723b3329c080e9245028b4d0a3fc64<\/p>\n\n\n\n<p>In JavaScript ist dies etwas weniger trivial: Hier \u00fcberschreiben wir mit Hilfe von <a rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\" href=\"https:\/\/developer.mozilla.org\/de\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/Object\/defineProperty\" target=\"_blank\">Object.defineProperty<\/a> (dem m\u00e4chtigen Nachfolger von <a rel=\"noreferrer noopener\" href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/Object\/__defineGetter__\" target=\"_blank\">__defineGetter__<\/a> und <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/Object\/__defineSetter__\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\">__defineSetter__<\/a>)  die Getter\/Setter Methoden des Objekts document, die immer dann aufgerufen werden, wenn man mit Hilfe von <a aria-label=\"document.cookie (opens in a new tab)\" rel=\"noreferrer noopener\" href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/API\/Document\/cookie\" target=\"_blank\">document.cookie<\/a> Cookies liest und schreibt. <a rel=\"noreferrer noopener\" aria-label=\"getOwnPropertyDescriptor (opens in a new tab)\" href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/Object\/getOwnPropertyDescriptor\" target=\"_blank\">Object.getOwnPropertyDescriptor<\/a> erh\u00e4lt dabei den originalen Getter\/Setter, wobei man den Setter nur dann aufruft, wenn der Cookie auch erlaubt wird:<\/p>\n\n\n\n<p class=\"githubgist\" data-gist-file=\"script.js\">8b723b3329c080e9245028b4d0a3fc64<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Das Setzen von Cookies durch eigene oder fremde Skripte l\u00e4sst sich sowohl mit Hilfe von PHP und JavaScript fein steuern. Obwohl dies keine ausreichende L\u00f6sung f\u00fcr die Umsetzung von Cookie-L\u00f6sungen nach dem Gerichtsurteil gegen Planet49 darstellt (hier ist es entscheidend, dass Tracking-Tools wie Google Analytics gar nicht erst nicht mittracken und damit in der Folge [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"gtbabel_prevent_lngs":"","gtbabel_alt_lng":"","footnotes":""},"categories":[1],"tags":[],"class_list":{"0":"post-2538","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-blog"},"acf":[],"yoast_head":"<title>Cookies kontrollieren mit PHP und JS &#060; Vielhuber David<\/title>\n<meta name=\"description\" content=\"Das Setzen von Cookies durch eigene oder fremde Skripte l\u00e4sst sich sowohl mit Hilfe von PHP und JavaScript fein steuern. Obwohl dies keine ausreichen...\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/vielhuber.de\/blog\/cookies-kontrollieren-mit-php-und-js\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Cookies kontrollieren mit PHP und JS &#060; Vielhuber David\" \/>\n<meta property=\"og:description\" content=\"Das Setzen von Cookies durch eigene oder fremde Skripte l\u00e4sst sich sowohl mit Hilfe von PHP und JavaScript fein steuern. Obwohl dies keine ausreichende\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vielhuber.de\/blog\/cookies-kontrollieren-mit-php-und-js\/\" \/>\n<meta property=\"og:site_name\" content=\"Vielhuber David\" \/>\n<meta property=\"article:published_time\" content=\"2019-11-01T21:16:30+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-11-01T21:33:04+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/vielhuber.de\/wp-content\/uploads\/about.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"700\" \/>\n\t<meta property=\"og:image:height\" content=\"552\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"David\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@vielhuber\" \/>\n<meta name=\"twitter:site\" content=\"@vielhuber\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"David\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"1\u00a0Minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/vielhuber.de\\\/blog\\\/cookies-kontrollieren-mit-php-und-js\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vielhuber.de\\\/blog\\\/cookies-kontrollieren-mit-php-und-js\\\/\"},\"author\":{\"name\":\"David\",\"@id\":\"https:\\\/\\\/vielhuber.de\\\/#\\\/schema\\\/person\\\/64d4ff14713d413ea4d9b210d0c2c6ef\"},\"headline\":\"Cookies kontrollieren mit PHP und JS\",\"datePublished\":\"2019-11-01T21:16:30+00:00\",\"dateModified\":\"2019-11-01T21:33:04+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/vielhuber.de\\\/blog\\\/cookies-kontrollieren-mit-php-und-js\\\/\"},\"wordCount\":231,\"publisher\":{\"@id\":\"https:\\\/\\\/vielhuber.de\\\/#\\\/schema\\\/person\\\/64d4ff14713d413ea4d9b210d0c2c6ef\"},\"articleSection\":[\"Blog\"],\"inLanguage\":\"de\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/vielhuber.de\\\/blog\\\/cookies-kontrollieren-mit-php-und-js\\\/\",\"url\":\"https:\\\/\\\/vielhuber.de\\\/blog\\\/cookies-kontrollieren-mit-php-und-js\\\/\",\"name\":\"Cookies kontrollieren mit PHP und JS &#060; Vielhuber David\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vielhuber.de\\\/#website\"},\"datePublished\":\"2019-11-01T21:16:30+00:00\",\"dateModified\":\"2019-11-01T21:33:04+00:00\",\"description\":\"Das Setzen von Cookies durch eigene oder fremde Skripte l\u00e4sst sich sowohl mit Hilfe von PHP und JavaScript fein steuern. Obwohl dies keine ausreichende\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/vielhuber.de\\\/blog\\\/cookies-kontrollieren-mit-php-und-js\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/vielhuber.de\\\/blog\\\/cookies-kontrollieren-mit-php-und-js\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/vielhuber.de\\\/blog\\\/cookies-kontrollieren-mit-php-und-js\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/vielhuber.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Cookies kontrollieren mit PHP und JS\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/vielhuber.de\\\/#website\",\"url\":\"https:\\\/\\\/vielhuber.de\\\/\",\"name\":\"Vielhuber David\",\"description\":\"Full-Stack Developer\",\"publisher\":{\"@id\":\"https:\\\/\\\/vielhuber.de\\\/#\\\/schema\\\/person\\\/64d4ff14713d413ea4d9b210d0c2c6ef\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/vielhuber.de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/vielhuber.de\\\/#\\\/schema\\\/person\\\/64d4ff14713d413ea4d9b210d0c2c6ef\",\"name\":\"David\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/vielhuber.de\\\/wp-content\\\/uploads\\\/about.jpg\",\"url\":\"https:\\\/\\\/vielhuber.de\\\/wp-content\\\/uploads\\\/about.jpg\",\"contentUrl\":\"https:\\\/\\\/vielhuber.de\\\/wp-content\\\/uploads\\\/about.jpg\",\"width\":700,\"height\":552,\"caption\":\"David\"},\"logo\":{\"@id\":\"https:\\\/\\\/vielhuber.de\\\/wp-content\\\/uploads\\\/about.jpg\"},\"sameAs\":[\"https:\\\/\\\/x.com\\\/vielhuber\"]}]}<\/script>","yoast_head_json":{"title":"Cookies kontrollieren mit PHP und JS &#060; Vielhuber David","description":"Das Setzen von Cookies durch eigene oder fremde Skripte l\u00e4sst sich sowohl mit Hilfe von PHP und JavaScript fein steuern. Obwohl dies keine ausreichen...","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:\/\/vielhuber.de\/blog\/cookies-kontrollieren-mit-php-und-js\/","og_locale":"de_DE","og_type":"article","og_title":"Cookies kontrollieren mit PHP und JS &#060; Vielhuber David","og_description":"Das Setzen von Cookies durch eigene oder fremde Skripte l\u00e4sst sich sowohl mit Hilfe von PHP und JavaScript fein steuern. Obwohl dies keine ausreichende","og_url":"https:\/\/vielhuber.de\/blog\/cookies-kontrollieren-mit-php-und-js\/","og_site_name":"Vielhuber David","article_published_time":"2019-11-01T21:16:30+00:00","article_modified_time":"2019-11-01T21:33:04+00:00","og_image":[{"width":700,"height":552,"url":"https:\/\/vielhuber.de\/wp-content\/uploads\/about.jpg","type":"image\/jpeg"}],"author":"David","twitter_card":"summary_large_image","twitter_creator":"@vielhuber","twitter_site":"@vielhuber","twitter_misc":{"Verfasst von":"David","Gesch\u00e4tzte Lesezeit":"1\u00a0Minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/vielhuber.de\/blog\/cookies-kontrollieren-mit-php-und-js\/#article","isPartOf":{"@id":"https:\/\/vielhuber.de\/blog\/cookies-kontrollieren-mit-php-und-js\/"},"author":{"name":"David","@id":"https:\/\/vielhuber.de\/#\/schema\/person\/64d4ff14713d413ea4d9b210d0c2c6ef"},"headline":"Cookies kontrollieren mit PHP und JS","datePublished":"2019-11-01T21:16:30+00:00","dateModified":"2019-11-01T21:33:04+00:00","mainEntityOfPage":{"@id":"https:\/\/vielhuber.de\/blog\/cookies-kontrollieren-mit-php-und-js\/"},"wordCount":231,"publisher":{"@id":"https:\/\/vielhuber.de\/#\/schema\/person\/64d4ff14713d413ea4d9b210d0c2c6ef"},"articleSection":["Blog"],"inLanguage":"de"},{"@type":"WebPage","@id":"https:\/\/vielhuber.de\/blog\/cookies-kontrollieren-mit-php-und-js\/","url":"https:\/\/vielhuber.de\/blog\/cookies-kontrollieren-mit-php-und-js\/","name":"Cookies kontrollieren mit PHP und JS &#060; Vielhuber David","isPartOf":{"@id":"https:\/\/vielhuber.de\/#website"},"datePublished":"2019-11-01T21:16:30+00:00","dateModified":"2019-11-01T21:33:04+00:00","description":"Das Setzen von Cookies durch eigene oder fremde Skripte l\u00e4sst sich sowohl mit Hilfe von PHP und JavaScript fein steuern. Obwohl dies keine ausreichende","breadcrumb":{"@id":"https:\/\/vielhuber.de\/blog\/cookies-kontrollieren-mit-php-und-js\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vielhuber.de\/blog\/cookies-kontrollieren-mit-php-und-js\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/vielhuber.de\/blog\/cookies-kontrollieren-mit-php-und-js\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/vielhuber.de\/"},{"@type":"ListItem","position":2,"name":"Cookies kontrollieren mit PHP und JS"}]},{"@type":"WebSite","@id":"https:\/\/vielhuber.de\/#website","url":"https:\/\/vielhuber.de\/","name":"Vielhuber David","description":"Full-Stack Developer","publisher":{"@id":"https:\/\/vielhuber.de\/#\/schema\/person\/64d4ff14713d413ea4d9b210d0c2c6ef"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/vielhuber.de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":["Person","Organization"],"@id":"https:\/\/vielhuber.de\/#\/schema\/person\/64d4ff14713d413ea4d9b210d0c2c6ef","name":"David","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/vielhuber.de\/wp-content\/uploads\/about.jpg","url":"https:\/\/vielhuber.de\/wp-content\/uploads\/about.jpg","contentUrl":"https:\/\/vielhuber.de\/wp-content\/uploads\/about.jpg","width":700,"height":552,"caption":"David"},"logo":{"@id":"https:\/\/vielhuber.de\/wp-content\/uploads\/about.jpg"},"sameAs":["https:\/\/x.com\/vielhuber"]}]}},"_links":{"self":[{"href":"https:\/\/vielhuber.de\/fa\/wp-json\/wp\/v2\/posts\/2538","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vielhuber.de\/fa\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vielhuber.de\/fa\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vielhuber.de\/fa\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vielhuber.de\/fa\/wp-json\/wp\/v2\/comments?post=2538"}],"version-history":[{"count":10,"href":"https:\/\/vielhuber.de\/fa\/wp-json\/wp\/v2\/posts\/2538\/revisions"}],"predecessor-version":[{"id":2549,"href":"https:\/\/vielhuber.de\/fa\/wp-json\/wp\/v2\/posts\/2538\/revisions\/2549"}],"wp:attachment":[{"href":"https:\/\/vielhuber.de\/fa\/wp-json\/wp\/v2\/media?parent=2538"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vielhuber.de\/fa\/wp-json\/wp\/v2\/categories?post=2538"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vielhuber.de\/fa\/wp-json\/wp\/v2\/tags?post=2538"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}