02.04.2017      Kommentare: 1           

Entrance

Zenphoto bringt von Haus aus einige Statistikfunktionen mit.
Mit der Aktivierung des 'search statistic' Plugins werden auch die Suchanfragen statistisch erfasst.

Das Plugin ist für mich sehr hilfreich um festzustellen wonach die Besucher meiner Seite suchen.
Dementsprechend habe ich dieses Plugin bei mir gleich nach der Installation aktiviert.

Die von den Besuchern durchgeführten Suchen werden dabei in der Tabelle:
plugin_storage
gespeichert.

Dabei fällt auf, dass dabei auch die komplette IP der Besucher mit in die Datenbank geschrieben wird, was ich persönlich so eigentlich nicht haben möchte.
Demzufolge habe ich nach einem Weg gesucht um die Besucher-IP's zu anonymisieren.

Dies lässt sich mit einigen Zeilen Code relativ einfach realisieren.

 

Achtung:
Für den beschriebenen Lösungsweg ist es notwendig eine der Core Dateien von Zenphoto zu editieren.
Dies ist grundsätzlich kein empfehlenswerter Weg.

Daher erfolgen alle Änderungen ausdrücklich auf eigenes Risiko!
Ausserdem ist die Wahrscheinlichkeit hoch, dass die von Euch gemachten Änderungen bei einem Zenphoto Update überschrieben werden.

Wir werden im Folgenden die Datei:
functions.php
um einige Zeilen Code ergänzen.

Diese Datei befindet sich im 'zp_core' Verzeichnis Eurer Zenphoto Installation.
Zunächst legt bitte ein Backup dieser Datei an (wichtig)!

Danach öffnet Ihr die Datei in einem Editor. Ungefähr in Zeile 2050 befindet sich die Funktion für die Besucher IP. Am einfachsten findet Ihr diese, wenn Ihr in der Datei nach:
function getUserIP
sucht.

Ihr findet dann den Eintrag:
function getUserIP() {

Fügt nun vor diesem Eintrag die folgenden Codezeilen ein:

function getAnonymIp( $ip ) {    
    return preg_replace('/[0-9]+\z/', '0', $ip);
    }

Ein paar Zeilen weiter unten findet Ihr zwei Einträge:
return $ip;

Fügt bitte vor diesen Einträgen jeweils ein:
$ip = getAnonymIp( $ip );

 

Der komplette Codeblock sieht nun wie folgt aus:


function getAnonymIp( $ip ) {    

    return preg_replace('/[0-9]+\z/', '0', $ip);
    }

 
function getUserIP() {
    $pattern = '~^([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])$~';
    if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
        $ip = sanitize($_SERVER['HTTP_X_FORWARDED_FOR']);
        if (preg_match($pattern, $ip)) {
        $ip = getAnonymIp( $ip );
            return $ip;
        }
    }
    $ip = sanitize($_SERVER['REMOTE_ADDR']);
    if (preg_match($pattern, $ip)) {
    $ip = getAnonymIp( $ip );
        return $ip;
    }
    return NULL;
}

 

Die gemachten Änderungen führen dazu, dass der letzte Block der Besucher IP durch die Zahl Null erzetzt wird.
Sollte bei den Änderungen etwas schiefgehen, ersetzt die geänderte Datei bitte durch das zuvor gemachte Backup.

Die beschriebenen Änderungen beziehen sich auf die im März 2017 aktuelle Zenphoto Version.

Auch wenn es weiter oben schon erwähnt wurde hier nochmals der Hinweis:
Änderungen an den Core Dateien erfolgen auf eigenes Risiko!

Sollte jemand einen eleganteren Weg bei dem sich die Anonymisierung der IP ohne Änderungen einer Core Datei durchführen lässt wäre ich für einen Tipp dankbar.
Nutzt dafür einfach die Kommentarfunktion unter dem Beitrag.

 

 

 





Teilen:

Ähnliches


Kategorien
Bewertung 5,0 (2 Stimmen)

1 Kommentar

Malte Müller (acrylian): zu 08.04.2017

Danke für den Hinweis. Dass da die IP standardmäßig gespeichert wird, geht natürlich aus (EU-)datenschutzrechtlich gar nicht, und wurde vom ursprünglichen Autor nicht berücksichtigt. Wir werden das als Option nachrüsten.
Nächstes Mal bitte gern im Forum oder im GitHub issue tracker auf sowas hinweisen.

Kommentar hinzufügen:

*Pflichtfelder




Kommentare abonnieren RSS Feed
Neuigkeiten
Letzte Kommentare
Beliebteste Bilder  
Neuste Bilder  
Best Bewertet  
Popular Albums