Matomo-Tracking und Aufrufzaehlung absichern
This commit is contained in:
+37
-10
@@ -150,7 +150,7 @@ den CSV-Import. Beide sind per `.htaccess` von außen gesperrt.
|
||||
|
||||
### 6. Migrationen einspielen
|
||||
|
||||
Es gibt 30 versionierte Migrationen in `database/migrations/`, angewendet
|
||||
Es gibt 32 versionierte Migrationen in `database/migrations/`, angewendet
|
||||
über `scripts/migrate.php`. Das Skript ist idempotent und wendet nur
|
||||
fehlende Migrationen an. Es arbeitet ausschließlich im Prefix aus der
|
||||
jeweiligen `env.local.php`; daher müssen Migrationen einmal in Staging und
|
||||
@@ -360,9 +360,11 @@ putenv('MATOMO_PRIVACY_CONFIRMED=1');
|
||||
```
|
||||
|
||||
`MATOMO_SITE_ID` durch die numerische Website-ID ersetzen. Die gemeinsame
|
||||
Cookie-Domain ist nur richtig, wenn Marketingseite, App und Matomo tatsächlich
|
||||
unter `kaffeeliste.de` betrieben werden sollen. Sonst leer lassen; die
|
||||
Einwilligung gilt dann nur auf dem jeweils besuchten Host.
|
||||
Cookie-Domain ist nur richtig, wenn Marketingseite und App unter
|
||||
`kaffeeliste.de` laufen und dieselbe Entscheidung sowie Besucherkennung nutzen
|
||||
sollen. Der Host der selbst betriebenen Matomo-Instanz darf davon abweichen.
|
||||
Sonst leer lassen; die Einwilligung gilt dann nur auf dem jeweils besuchten
|
||||
Host.
|
||||
|
||||
`MATOMO_PRIVACY_CONFIRMED=1` erst setzen, nachdem die Matomo-Instanz so
|
||||
konfiguriert und geprüft wurde:
|
||||
@@ -374,16 +376,19 @@ konfiguriert und geprüft wurde:
|
||||
3. Roh- und Besuchsprotokolle werden spätestens nach 180 Tagen automatisch
|
||||
gelöscht; verdichtete Berichte spätestens nach 25 Monaten.
|
||||
4. Keine User-ID, benutzerbezogene Custom Dimensions, Heatmaps,
|
||||
Sitzungsaufzeichnungen oder Werbeintegrationen aktivieren. Der eingebundene
|
||||
Tracker deaktiviert zusätzlich Browser-Funktionserkennung,
|
||||
Performance-Messung und Link-Klick-Tracking.
|
||||
Sitzungsaufzeichnungen oder Werbeintegrationen aktivieren. Der
|
||||
First-Party-Tracker übermittelt nur den bereinigten Seitenaufruf, eine
|
||||
zufällige Besucherkennung und die im Datenschutzhinweis genannten wenigen
|
||||
Browserangaben; Performance- und Link-Klick-Messung bleiben deaktiviert.
|
||||
5. In Matomo ist genau eine Website mit den erlaubten Marketing- und
|
||||
App-Domains angelegt. Testaufrufe mit Query-Parametern dürfen in Matomo nur
|
||||
den Pfad ohne Query oder Fragment zeigen.
|
||||
6. Im privaten Browserfenster prüfen: Vor der Entscheidung und nach „Nur
|
||||
notwendige“ gibt es keine Anfrage an `matomo.js`/`matomo.php` und keine
|
||||
`_pk_*`-Cookies. Nach Zustimmung gibt es beides; ein anschließender Widerruf
|
||||
über „Cookie-Einstellungen“ stoppt weitere Aufrufe und löscht die Cookies.
|
||||
notwendige“ gibt es keine Anfrage an `nutzungsanalyse.php` und kein
|
||||
`kaffeeliste_analytics_visitor`-Cookie. Nach Zustimmung antwortet der lokale
|
||||
POST an `nutzungsanalyse.php` mit HTTP 204 und der Aufruf erscheint in
|
||||
Matomo. Ein anschließender Widerruf über „Cookie-Einstellungen“ stoppt
|
||||
weitere Aufrufe und löscht das Besuchercookie.
|
||||
|
||||
Die Entscheidung wird 180 Tage im Cookie
|
||||
`kaffeeliste_analytics_consent` gespeichert. Eine Versionsänderung in
|
||||
@@ -391,6 +396,28 @@ Die Entscheidung wird 180 Tage im Cookie
|
||||
oder Empfängern erfordern außerdem eine neue Datenschutzerklärung und eine
|
||||
erneute rechtliche Prüfung.
|
||||
|
||||
Der Browser lädt weder `matomo.js` noch `matomo.php` vom Analysehost. Nach der
|
||||
Einwilligung sendet `assets/js/privacy-settings.js` genau einen bereinigten
|
||||
Seitenaufruf an den gleichnamigen Host-Endpunkt `nutzungsanalyse.php`. Dieser
|
||||
validiert Einwilligung, Origin, Besucherkennung und URL und leitet den Aufruf
|
||||
serverseitig an die feste `MATOMO_URL`/`MATOMO_SITE_ID` weiter. Die Client-IP
|
||||
wird nicht als Tracking-Parameter an Matomo übermittelt.
|
||||
|
||||
### Anonyme Grundzählung ohne Einwilligung
|
||||
|
||||
Unabhängig von Matomo zählt `app/public-page-views.php` die GET-Aufrufe
|
||||
ausgewählter öffentlicher HTML-Seiten. In `public_page_views` stehen nur der
|
||||
Kalendertag, ein fester Seitenschlüssel und ein Summenzähler. IP-Adresse,
|
||||
User-Agent, Referrer, vollständige URL, Query-Parameter, Cookies und
|
||||
Benutzerkennungen werden weder gelesen noch in diese Statistik übernommen.
|
||||
|
||||
Die Auswertung steht ausschließlich Platform-Admins im Back-Office zur
|
||||
Verfügung und zeigt heute, die letzten 30 Tage, den Gesamtstand sowie die
|
||||
Aufteilung je Seite. Sie misst Seitenaufrufe, keine eindeutigen Besucher;
|
||||
Wiederholungen und Bots können enthalten sein. Die Zählung beginnt erst nach
|
||||
Anwendung von `0032_public_page_views.sql` und kann frühere Zugriffe nicht
|
||||
rückwirkend rekonstruieren.
|
||||
|
||||
## Betreiber-Benachrichtigung bei neuer Registrierung
|
||||
|
||||
`register.php` schickt nach einer erfolgreichen Selbstregistrierung einen
|
||||
|
||||
Reference in New Issue
Block a user