Sicarius

Noch mehr “Schutz” für alle!

Hach, wie naiv ich doch war als ich im vorletzten Eintrag schrieb Und damit wäre zu dem Thema alles gesagt und getan. Es war leider bei Weitem noch nicht alles getan, um komplett DSGVO-Konform zu sein, wie ich bei weiterer Recherche festgestellt habe. Zum Glück gibt es Blogs, die sich bereits intensiv mit dem Thema beschäftigt haben wie z.B. Reisen Fotografie oder Der Internetcoach wo man sich weitere Inspiration holen kann, wo es vielleicht noch Knackpunkte gibt.

Und das habe ich in meiner ersten (von nur zwei) Urlaubswochen gemacht. So gut wie nichts gespielt (noch eine Mission in Conflict: Denied Ops) und stattdessen fleißig an Beim Christoph gewerkelt. Nicht nur aber hauptsächlich für die DSGVO und dieses Mal auch dankenswerterweise mit Unterstützung von Rondrer bei ein paar Knackpunkten.

Noch sicherere Verbindung

Höchstnoten im SSL-Report!

Letztes Mal hatte ich dank eines SSL-Zertifikats https aktiviert. Das ist schon Sicher, aber es geht noch eine Stufe besser und zwar dank HSTS (HTTP Strict Transport Security). Grob zusammengefasst (die Details könnt ihr auf Wikipedia lesen), zwingt das euren Browser ausschließlich verschlüsselte Informationen von der Domain zu akzeptieren. Würdet ihr quasi auf https://www.beimchristoph.de unterwegs sein und ich hätte bspw. noch ein Bild von http://www.beimchristoph.de eingebunden, dann würde es nicht angezeigt werden.

Das kostet technisch gesehen wieder ein paar Millisekunden mehr beim Seitenaufruf aber Sicherheit ist ja nie verkehrt. Um diesen Zeitverlust aber ein wenig zu negieren, bietet Chrome eine Preload-Liste, die auch von der Konkurrenz (Firefox & Co.) benutzt wird. Erfüllt die Seite die Anforderungen, wird sie dort aufgenommen und der Browser nutzt automatisch HSTS ohne erst auf die Informationen vom Server zu warten. Beim Christoph gehört nun zu diesen Seiten dazu *yay*.

Weiterer Vorteil von HSTS: Ich habe jetzt beim SSL-Report mit A+ die höchste Wertung (letztes Mal war es nur A).

Weiterleitung

Das aktuelle Ergebnis für die Startseite

Die Aktivierung von HSTS hatte aber jetzt nichts mit der Datenschutzgrundverordnung zu tun – das habe ich einfach nur gemacht, weil es Sinn macht und kein großer Aufwand war. Das große Thema waren stattdessen Inhalte, die von extern eingebunden waren bzw. ohne eure Genehmigung nach Hause funken und Daten speichern (Cookies). Dazu musste ich natürlich erst einmal herausfinden, wer das eigentlich ist und da hilft der Web Security Check der schwedischen Firma Dataskydd. Der ruft die Seite auf wie ein normaler Nutzer und zwar ohne irgendwelche “Do Not Track”-Settings oder Ad-Blocker und spuckt eine Vielzahl an nützlichen Informationen aus. Durch die Seite bin ich übrigens auf das Thema HSTS gestoßen (prüft er mit).

Zuerst hat er das Thema “Referrers” bemängelt. Kurz zusammengefasst: Klickt ihr einen Link, der zu einer anderen Webseite führt, wird im Normalfall die Information der ursprünglichen Webseite mit übertragen. Sprich die empfangende Webseite weiß, dass ihr von der sendenden Webseite kommt und bekommt mitunter sogar gleich noch den Cookie von der anderen Seite mitgeliefert. Ist nützlich für die Statistik (so kann ich bspw. nachvollziehen, wer zu mir verlinkt) aber für den Datenschutz eine absolute Katastrophe. Zumal das ebenso beim einfachen Laden von Bildern passiert, wenn sie von extern eingebunden sind. Um das zu beeinflussen gibt es den META-Tag “referrer” mit unterschiedlichen Einstellungsmöglichkeiten. Die härteste und auch die, die nun bei Beim Christoph aktiv ist, ist “no-referrer”. Sprich egal welchen Link ihr auf dieser Seite anklickt oder wie ich meine Daten eingebunden habe, der Ursprung wird nie mit übertragen.

Und da ich sowieso gerade im Code unterwegs war, habe ich den Internet-Explorer-Check ausgebaut. Der prüfte ob ihr mit einem Internet Explorer unter Version 7 die Webseite aufruft und blendete dann statt der Seite eine Warnmeldung ein, dass ihr doch bitte euren Browser aktualisieren sollt. Da aber zum einen die Wahrscheinlichkeit extrem klein ist (unter 0,5%), dass überhaupt noch einer Beim Christoph mit so einem alten Schinken besucht und selbst Microsoft mittlerweile seine IE6-Countdown-Seite nicht mehr aktualisiert (wurde auf der Fehlerseite verlinkt), habe ich die Prüfung entfernt.

Externe Quellen – Der Rest

Als nächstes ging es den externen Quellen an die Gurgel, was mitunter gar nicht so einfach war. Glücklicherweise habe ich z.B. diese Liste bei Blogmojo gefunden mit den WordPress-Plugins, die nicht DSGVo-Konform sind. Das Endergebnis ist, dass beim Aufruf der Startseite nur noch von Google Analytics Cookies (Beim Christoph verwendet nur für die Autoren welche, wenn sie sich eingeloggt haben) erzeugt werden aber genau dafür habe ich ja den blauen Banner eingebunden. Wobei es da ggf. 2019 mit der ePrivacy-Verordnung nochmal Änderungen geben kann. Die findet “Opt-Out” nämlich nicht mehr ausreichend und möchte explizites “Opt-In”. Ganz ehrlich: Wenn das wirklich so kommt, werde ich Google Analytics vermutlich einfach abschalten. Die Zahlen sind dann sowieso nicht mehr wirklich aussagekräftig und bevor ich euch mit noch mehr Checkboxen quäle (kommen wir weiter unten noch dazu)…

Auch die Anfragen an andere Webseiten wurden auf nur noch zwei eingedampft. Zum einen ist es wieder Google Analytics, weil er den Tracker laden muss. Zum anderen mein Twitter-Feed auf der rechten Seite, weil er dort die Useravatare anzeigt und die im Tweet enthaltenen Bilder vorlädt. Beides liegt logischerweise nicht auf meinem Server. Das lässt sich (aktuell) nicht verhindern ohne die Tweet-Anzeige komplett abzuschalten. Es sollte aber erst einmal unkritisch sein im Sinne des DSGVO. Zum einen weise ich darauf in meiner Datenschutzerklärung hin und zum anderen fällt es aus meiner naiven Sicht unter die Klausel “wenn es notwendig für die Funktion der Seite ist, ist es okay”.

Update (09.05.2018): Ich habe Google Analytics komplett rausgeschmissen. Die Daten habe ich sowieso hauptsächlich Jahr nur für den Jahresrückblick genutzt (und Befriedigung meiner Neugier).

Externe Quellen – Die Gefallenen

die neuen Share Buttons

Die externen Zugriffe wurden also radikal zusammengestrichen aber den einen oder anderen interessiert sicher, was ich dafür genau alles getan habe. Nun, fangen wir mit den Social-Media-Buttons an. Die wurden bislang vom (WordPress-)Plugin Simple Share Buttons zur Verfügung gestellt. Problem: Sobald ihr die Seite aufgerufen habt, haben sie nach Hause gefunkt. Nicht nur, um die Buttons zu laden, sondern auch gleich noch mehr Infos an Facebook & Co. zu schicken. Das ging natürlich gar nicht, also habe ich das Plugin komplett entfernt und stattdessen c’t Shariff eingebaut, das (wie der Name schon sagt) von Heise entwickelt wurde. Das sorgt dafür, dass zum einen die Buttons nicht von extern geladen werden und zum anderen werden erst Daten übertragen, sobald ihr tatsächlich aktiv auf den Button drückt (und damit eure Absicht bekundet den Eintrag zu teilen). Weiterer positiver Nebeneffekt: Ihr müsst nun nicht mehr in den Eintrag springen, um explizit den Eintrag zu teilen. Bei Simple Share Buttons ist irgendwie ein Bug drin, der dazu führt, dass ihr dann immer die Hauptseite geteilt habt statt den eigentlichen Eintrag.

Das 2. Opfer auf der Startseite war das Amazon-Banner mit dem Partnerlink. Auch das wurde von Amazon ausgeliefert und lag nicht auf meinem Server. Entsprechend habe ich es komplett entfernt und der Partnerlink ist nun oben im Reiter “Über uns” zu finden. Ehrlich gesagt gefiel mir das da auf der rechten Seite sowieso nie richtig und draufgeklickt habt ihr genauso wenig. Entsprechend kein großer Verlust. Im Gegensatz vermutlich zum nächsten Thema:

Avatarbeispiel

Gravatar ist tot. Ward ihr bei Gravatar registriert und habt in den Kommentaren eure E-Mail-Adresse eingetragen, wurde anschließend euer Avatar sichtbar. Das ist zwar praktisch aber es werden halt auch immer Daten gesendet, was nicht im Sinne der DSGVO ist. Jetzt hätte ich natürlich die Avatare ganz deaktivieren können aber das sah doof und etwas unübersichtlich aus. Deswegen habe ich das sowieso schon immer installierte Plugin WP User Avatar etwas anders konfiguriert. Das Ergebnis, dass jeder Kommentar erst einmal Pauschal die Silhouette meines Kopfs als Avatar hat. Nur bei den registrierten Autoren wird weiterhin (wenn sie ihren Namen und E-Mailadresse eintragen) ihr eigener Avatar dargestellt. Ist nicht die beste Lösung, weil sich der normale User natürlich nicht registrieren kann, um einen eigenen Avatar hochzuladen (beides möchte ich explizit nicht). Aber immer noch besser als kein Bild aus meiner Sicht.

Zu den sonstigen Neuerungen bei den Kommentaren kommen wir gleich noch. Noch sind wir aber nicht mit den externen Inhalten durch. Als nächstes hat es das Plugin Print, PDF & Email by Printfriendly erwischt – und zwar ersatzlos. Zwar konnte ich die Bilder auf meinen Server holen aber für das eigentliche Skript hat er trotzdem immer Kontakt zu einem CDN (Content Delivery Network) aufgenommen. Ob das wirklich schlimm ist, konnte ich bei meinen Recherchen nicht wirklich rausfinden aber aktuell gehe ich halt lieber auf Nummer sicher. Ich hab’ dann zwar versucht ein anderes Plugin mit der gleichen Funktionalität zu finden aber die ließen sich irgendwie alle nicht anständig einbinden. Am Ende habe ich mir die Frage gestellt, ob sich überhaupt so viele Besucher die Einträge ausdrucken und bin zum Ergebnis gekommen, dass für die paar Mal die Druckfunktion des jeweiligen Browsers ausreicht.

Externe Quellen – Die eigenen Inhalte

Abseits der Plugins habe ich natürlich auch noch eigene Inhalte auf externen Servern liegen, die ich dann bei mir einbinde (statt nur dahin zu verlinken). Das war zum einen der Podcast, der bislang immer noch auf den Servern der European Codebase (Ultimate Cheatz Forum) lag. Hat mich ehrlich gesagt schon gewundert, dass das noch keinen weiter gestört hat (die Seite ist seit Jahren tot) aber hey: Einem geschenkten Gaul schaut man bekanntlich nicht ins Maul. Aber mit der DSGVO ist das freililch nicht ganz so gut – zumal es eine http-Adressse ist. Also habe ich kurzerhand die Podcasts auf meinen Server umgezogen und die URLs in den Einträgen angepasst. Das war durch die integrierte “Suchen und Ersetzen”-Funktion des Plugins Blueberry Powerpress (das liefert den Play-Button in den Einträgen) tatsächlich eine Sache von zwei Sekunden – also nachdem Rondrer mich darauf hingewiesen hat, dass das Plugin diese Funktion hat :smile: .

So sieht der YT-Player jetzt aus

Zum anderen sind es die YouTube-Videos. Die konnte ich logischerweise nicht einfach mal so umziehen. Die müssen bei YouTube bleiben. Aber schon beim Aufruf einer Seite mit dem Player werden Daten an YouTube gesendet. Eine Variante wäre nun gewesen sie nicht mehr einzubinden und nur noch zu verlinken, aber das ist aus Benutzersicht natürlich extrem doof. Erneut half mir hier ein Blogpost bei Blogmojo weiter, der genau auf das Thema eingeht und entsprechende Plugins nennt, um das Einbinden von YouTube-Videos DSGVO-konform zu machen.

Ich hatte mich für die voll umfängliche Lösung mit Embed videos and respect privacy entschieden. Das zeigt euch statt des YouTube-Players einen Hinweis an, dass das Video von YouTube eingebettet ist und erst wenn ihr daraufklickt, werden tatsächlich Daten an und von YouTube übertragen – vorher nicht. Leider hat es zuerst überhaupt nicht funktioniert. Das Plugin ist zwar simpel, aber anscheinend zu simpel, denn es wollte partout die YouTube-Links nicht erkennen. Warum? Weil es eine Leerzeile im Code vor und nach dem YouTube-Link erwartet, sonst erkennt er ihn nicht. Okay, denkt man sich: Dann halt überall eine Leerzeile rein. Tja, das ist mit WordPress nicht so einfach, weil es den Code beim speichern automatisch optimiert und dabei auch aus seiner Sicht überflüssige Leerzeilen entfernt. Lange Rede, kurzer Sinn: Rondrer musste im CSS ergänzen, dass der YouTube-Player automatisch zentriert dargestellt wird und ich musste anschließend alle Einträge mit Videos einzeln bearbeiten. Zum einen, um den alten iFrame-Code zu entfernen und zum anderen, um quasi manuell vor und nach dem YouTube-Link die Leerzeilen einzufügen. Außerdem musste ich hinter die Überschrift (z.B. Christoph spielt #2: SimCity) eine Leerzeile (das nbsp) erzwingen sonst hätte WordPress die Leerzeile vor dem Link wieder entfernt beim Speichern. Total doof. Aber immerhin funktioniert es jetzt.

Zu guter Letzt musste ich beim Plugin Antispam Bee (verhindert Spamkommentare) die Konfiguration ändern. Bislang prüfte es aus welchem Herkunftsland der Kommentar kam (viele Spamkommentare kommen von ausländischen IP-Adressen). Dazu muss aber freilich die IP-Adresse an einen anderen Server schicken. Das darf neu nicht mehr sein, also wurde diese Prüfung deaktiviert. Hatte bislang aber noch keine negativen Auswirkungen auf das Spamvorkommen – was allerdings auch mit den anderen Änderungen im Bereich der Kommentare zusammenhängen dürfte.

Datenspeicherung

Hier stand auch mal die IP-Adresse

Die IP-Adresse ist ein gutes Stichwort, für den nächsten Punkt: Bislang wurde die bei den Kommentaren immer mitgespeichert. Nicht nur wegen Spam, sondern auch aus rechtlichen Gründen. Ohne IP-Adresse kann der Autor eines bösen Kommentars logischerweise nicht zurückverfolgt werden. Aber da IP-Adressen in der DSGVO explizit als persönliche Daten deklariert sind, ist aktuell die Diskussion, ob das tatsächlich noch zulässig ist. Andererseits muss ich den bösen Kommentar sowieso sofort nach Kenntnisnahme löschen und wenn ich Daten zur Strafverfolgung nicht habe, habe ich sie einfach nicht. Bislang gibt es keinen Zwang sie zu sammeln – nur sie herauszugeben. Entsprechend werden nicht nur ab sofort bei der Abgabe eines Kommentars keine IP-Adressen mehr gespeichert – ich habe sie gleichzeitig aus allen alten Kommentaren restlos entfernt.

Außerdem ist sowohl die Angabe eines Namens als auch die einer E-Mailadresse ab sofort optional. Gebt ihr keinen Namen an, werdet ihr zum “Anonymous” und ohne E-Mailadresse ist es logischerweise nicht möglich den Eintrag zu abonnieren (ihr bekommt allerdings keine Fehlermeldung angezeigt, wenn ihr trotzdem ohne E-Mail-Adresse abonnieren wollt – auch wieder Absicht). Für die registrieren Autoren gilt logischerweise: Wenn ihr keinen Namen und keine E-Mailadresse eintragt, erkennt euch das System nicht und euer Avatar wird nicht dargestellt.

Damit speichert Beim Christoph nur noch eure E-Mailadresse, wenn ihr sie tatsächlich beim Schreiben eines Kommentars hinterlegt sowie logischerweise den Inhalt besagten Kommentars. Ansonsten habe ich nichts mehr auf dem Server liegen, was euch eindeutig identifizieren kann (an Google Analytics wird nur eine anonymisierte IP-Adresse gesendet). Wenn das nicht DSGVO-konform ist, dann weiß ich auch nicht. Freilich werden trotzdem Daten von meinem Webhoster und eben Google verarbeitet, weshalb ich mit denen jeweils sicherheitshalber einen Auftragsverarbeitungsvertrag abgeschlossen habe.

Update (09.05.18): Der Vertrag mit Google war mir zu suspekt, deswegen habe ich ihn doch nicht abgeschlossen und Google Analytics wie oben erwähnt komplett entfernt.

Sonstige DSGVO-Sachen

Der Reiter “Über uns”

Was gibt es noch? Nur noch ein paar Kleinigkeiten. So müsst ihr bevor ihr einen Kommentar hinterlassen könnt, nun erst eine Checkbox anklicken. Damit stimmt ihr zu, dass ich die Daten verarbeiten und speichern darf. Ohne könnt ihr ab sofort keinen Kommentar hinterlassen. Und auch beim Abonnieren gibt es nun ein Double-Opt-In. Ihr müsst also nicht nur das Häkchen setzen, sondern erhaltet zusätzlich eine Bestätigungsmail mit einem Link, den ihr klicken müsst. Vorher ist euer Abo nicht aktiv.

Ansonsten musste ich das Impressum noch auf der Loginseite mit einbinden. Die kennt ihr aber im Normalfall sowieso nicht und wenn könnt ihr dort nichts tun. Insofern erwähne ich das jetzt nur der Vollständigkeit halber. Und ich habe unter “Über uns” auch noch einen Link zur Datenschutzerklärung ergänzt (obwohl es das gleiche Ziel ist wie das Impressum). Damit müsste Beim Christoph nun wirklich komplett DSGVO-konform sein. Zumindest fällt mir absolut nichts mehr ein und in den diversen Themensammlungen auf anderen Seiten konnte ich auch nichts mehr finden. Damit setze ich erst einmal einen Haken an das Thema und hoffe damit bis zur Umsetzung der ePrivacy-Verordnung nichts mehr zu tun zu haben (und vielleicht darüber hinaus).

DSGVO-unabhängig

Endlich wieder Text!

Abseits der DSGVO-Themen habe ich aber auch noch so ein bisschen an der Webseite gebastelt. Wenn ihr beispielsweise in einem Eintrag auf ein Bild klickt, sind zum einen alle dort dargestellten Texte endlich auf Deutsch und zum anderen wird nicht mehr der Eintragstitel unter dem Bild angezeigt, sondern tatsächlich die Bildunterschrift. Macht schließlich mehr Sinn. In den Untersektionen Garry’s Mod und Signaturen wird hingegen nun der Titel des Bilds direkt unter dem Thumbnail angezeigt und wenn ihr draufklickt, kommt ihr endlich auf die Seite mit den detaillierten Beschreibungen dazu. Die waren seit der Umstellung auf das neue Design nicht mehr sichtbar (nur bei deviantArt), was mir massiv auf den Sack ging. Aber die Lösung habe ich halt erst jetzt gefunden (waren tatsächlich nur paar zusätzliche Häkchen im Plugin Lightbox Plus Colorbox sowie eine Ergänzung im CSS-Template, damit die Darstellung stimmt).

Das alte Logo

Außerdem habe ich das Logo von Beim Christoph oben rechts aktualisiert. Ich bin zwar immer noch etwas fetter als ich sein möchte aber so fett wie auf dem alten Bild schon lange nicht mehr. Also habe ich eine aktualisierte Silhouette gebastelt. Und ja, die habe ich tatsächlich komplett selbst gemacht – nur mit ein bisschen Hilfe von einem YouTube-Tutorial! Auf der bin ich auch jetzt aufrecht und nicht so gekrümmt wie auf dem alten Bild. Und mit dem neuen Logo gibt es logischerweise ein neues Favicon. Das alte Plugin, All in One Favicon, habe ich dabei komplett entfernt und stattdessen den Realfavicon Generator installiert. Der erzeugt nicht nur ein Favicon aus einem Foto, sondern gleich für alle möglichen Formate eins (Android, iOS, Windows 8, etc.). Zwar fehlen die Highres-Bilder (das ursprüngliche Foto hat keine 225×225) aber die Darstellung sollte jetzt dennoch unter fast allen Umständen besser sein. Hier könnt ihr euch anschauen, was ich meine.

Zu guter Letzt habe ich fleißig Links korrigiert und bin nun Stand jetzt bei 86 kaputten und 117 mit Umleitungen (wovon technisch gesehen auch so einige eigentlich kaputt sind). Die meisten davon gehen aber zu externen Quellen und zu vielen gibt es halt einfach keinen Ersatz (z.B. für Rondrers Schlafblog). Bei den verbliebenen internen Links (z.B. in die schon lange nicht mehr existierende Fun-Sektion) habe ich lange darüber nachgedacht, was ich mache. Entweder ich bearbeite jeden Eintrag und ergänze einen Hinweis “existiert nicht mehr” oder ich lasse es so wie es ist oder ich leite die Links auf eine Art 404-Seite um mit dem Text “Dieser Link funktioniert nicht mehr, weil die Sektionen vor Jahren abgeschafft wurden”. Ich habe mich tatsächlich jetzt für letzteres entschieden. Das hat zwar zur Folge, dass ich unter Umständen nie wieder richtig nachvollziehen kann, wohin der Link ursprünglich mal hingehen sollte. Andererseits betrifft es wirklich nur Sachen, die sowieso nicht mehr zurück kommen (Fun-Sektion, Garfield-Strips, Regalfotos, etc.). Insofern ist das aus heutiger Sicht eine vertretbare Entscheidung.

Der Schluss

Und damit wären wir am Ende des heutigen Monstereintrags (fast 3.000 Wörter) angelangt. So viel wie in den letzten Wochen habe ich definitiv an Beim Christoph schon sehr lange nicht mehr gewerkelt. Ich kann zwar nicht leugnen, dass es auch Spaß gemacht hat es mal wieder zu tun. Aber jetzt bin ich doch ganz froh erst einmal durch zu sein. Aber wie immer gilt: Wenn euch noch etwas auffällt oder ihr weitere Verbesserungsvorschläge habt, dann einfach in die Kommentare packen. Bis Montag!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

:smile: :sad: :wink: :tongue: :-x :roll: mehr »