Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > Web Development
You last visited: Today at 22:30

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Matomo mit CSP

Discussion on Matomo mit CSP within the Web Development forum part of the Coders Den category.

Reply
 
Old   #1
 
Legithos's Avatar
 
elite*gold: 95
Join Date: Nov 2009
Posts: 669
Received Thanks: 47
Matomo mit CSP

Hallo zusammen,

habe vor kurzem Matomo auf meinem Webserver zum Tracken von Nutzerdaten installiert. Da ich via CSP die Ausführung von inline scripts verbiete, bietet Matomo eine wunderschöne Lösung in deren FAQ. Leider bin ich zu blöd diese Lösung zu verstehen. Vielleicht kann mir diese nochmals von einem von euch genauer erklärt werden.

Code:
Content-Security-Policy "default-src 'self'; script-src 'self'; connect-src 'self'";
Is meine aktuelle Policy. Die Anleitung für den JS-Tracker findet ihr hier

Die Einbindung der <scripts> in meine header.php ist klar. die Erstellung von tacking.js und matomo.js ist ebenfalls klar, insofern ich schon richtig verstanden habe, dass beide beide Dateien auf meinem Server liegen dürfen. Was ich gar nicht verstehe ist, was

Code:
var idSite = 1;
und

Code:
var matomoTrackingApiUrl = 'https://matomo.example.com/matomo.php';
für eine Rolle spielen und wie ich diese denn anpassen muss ? Ich meine was macht die matomo.php Datei da ? Auf Matomo wird nach der Standartinstallation über index.php zugegriffen.

Vielleicht hat das schonmal jemand gemacht und kann mich unterstützen. Vielen Dank vorab!

Legithos

EDIT:

Vielleicht bin ich nicht so dumm wie ich dachte, aber ich hab zumindest inzwischen (kurz nach Erstellung des Beitrages hier) etwas mehr verstanden.

Die matomo.php und matomo.js liegen sehr wohl neben index.php ebenfalls in dem matomo Ordner auf meinem Webserver. Die "isSite" ist die Webseiten-ID, falls ich mehrere Webseiten durch Matomo betreuen würde.

Meine Einstellungen wurden nun in allen Dateien angepasst, funkst jedoch trotzdem nicht - lol.

Auszug aus header.php
Code:
<script src="tracking.js"></script>
<script src="/analytics/matomo.js" async defer></script>
Fehler bezüglich der Einbindung/Lesbarkeit der zwei Dateien bekomme ich keine in der Konsole

Meine tracking.js
Code:
var idSite = 1;
var matomoTrackingApiUrl = '/analytics/matomo.php';

var _paq = window._paq = window._paq || [];  
_paq.push(['setTrackerUrl', matomoTrackingApiUrl]);
_paq.push(['setSiteId', idSite]);
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
Der Fehler ist immer noch "Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'self'". Either the 'unsafe-inline' keyword, a hash ('sha256-txlqUcmv5lpZwWD+2e6uZijqlJnMIsphRkFXJA1NNW0='), or a nonce ('nonce-...') is required to enable inline execution."

Wenn ich CSP deaktiviere, funktioniert alles wie gewohnt.
Legithos is offline  
Old 09/05/2021, 14:22   #2


 
False's Avatar
 
elite*gold: 0
The Black Market: 243/0/0
Join Date: Apr 2011
Posts: 11,118
Received Thanks: 2,435
Eigentlich steht es im FAQ sehr gut erklärt.
Du brauchst eigentlich nur
Code:
<script src="https://example.com/tracking.js"></script>
<script src="https://matomo.example.com/matomo.js" async defer></script>
Hierbei ist zu beachten das die tracking.js auf der Selben Domain liegt wie dein (zu trackendes) Projekt.
Die matomo.js wiederum kommt von deiner matomo Instanz die unter einer Subdomain liegt.

Der Inhalt der tracking.js soll wie folgt aussehen:
Code:
var idSite = 1;
var matomoTrackingApiUrl = 'https://matomo.example.com/matomo.php';

var _paq = window._paq = window._paq || [];  
_paq.push(['setTrackerUrl', matomoTrackingApiUrl]);
_paq.push(['setSiteId', idSite]);
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
Wobei du hierbei dann die Api Url auf deine (Sub)Domain der matomo ändern musst.

Somit solltest mit der einrichtung von Matomo fertig sein.
Da du nun aber versuchst eine Javascript Datei zu laden die nicht von deiner Domain sondern von einer Subdomain kommt wird der Browser es blockieren, da du "self" nutzt.
Somit musst du die CSP auch erweitern, mit der (Sub)Domain der matomo Instanz.
Beispiel auf dem FAQ:
Code:
Header set Content-Security-Policy "default-src 'self'; connect-src https://matomo.example.com; script-src 'self' https://matomo.example.com; img-src 'self' https://matomo.example.com; style-src 'self'; frame-ancestors 'self'; frame-src 'self';"
Danach sollte matomo funktionieren (sofern die matomo selbst funktioniert - kenne ich nicht -).
False is offline  
Old 09/05/2021, 19:44   #3
 
Legithos's Avatar
 
elite*gold: 95
Join Date: Nov 2009
Posts: 669
Received Thanks: 47
Danke schonmal vorab für die Erklärung. Jetzt liegt Matomo jedoch nicht auf meiner Subdomain, sondern in dem Ordner /analytics/ meines Grundverzeichnisses, also .

Die Variablen aus dem Example (tracking.js-Pfad, matomo.js-Pfad und matomoTrackingApiUrl) habe ich angepasst, jedoch funktioniert es trotzdem nicht. Die Subdomain in meine CSP zu ergänzen dürfte ich mir ja dann sparen können, wenn Matomo nicht unter einer Subdomain gespeichert wird.
Legithos is offline  
Old 09/05/2021, 21:11   #4


 
False's Avatar
 
elite*gold: 0
The Black Market: 243/0/0
Join Date: Apr 2011
Posts: 11,118
Received Thanks: 2,435
Dann schick uns doch mal die Seite dann kann man sich das angucken..
Es fehlen einfach zu viele Informationen was genau jetzt nicht geht...

- Werden die Datein geladen oder von CSP blockiert (Schau im Network Tab)
- Läuft das Javascript (sprich werden Request's an matomo gesendet) ?
- Gehen die Requests durch oder werden diese blockiert ?

Wenn die Requests durch gehen liegt es an der Konfiguration oder an matomo und nicht an der CSP.
False is offline  
Reply


Similar Threads Similar Threads
CFG für csp
05/13/2010 - Counter-Strike - 1 Replies
Kann jemand von dieses cfg zu csp anpassen ?? File-Upload.net - flori_cfg.rar CSP=CSPromod



All times are GMT +2. The time now is 22:30.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.