Mixed Content


#1

Ich betreibe OwnCloud unter der Adresse cloud.domain.com zum Teilen von Dateien. Piwik läuft unter piwik.domain.com. Das Ganze wird bei Hosteurope gehostet. Zur Sicherheit ist die Cloud hinter einem SSL-Proxy und wird daher von cloud.domain.com auf https://ssl.webpack.de/cloud.domain.com umgeleitet.
Ich tracke mit Piwik den Zugriff auf die Datei public.php, somit nur die User die auf freigegebene Dateien zugreifen.
Der Code dafür ist folgender:


<!-- Piwik -->
<script type="text/javascript">
  var _paq = _paq || [];
  _paq.push(['setDocumentTitle', "<?php echo $_['fileTarget'] ?>"]);  
  _paq.push(["trackPageView"]);
  _paq.push(["enableLinkTracking"]);

  (function() {
    var u="http://piwik.domain.com/";
    _paq.push(["setTrackerUrl", u+"piwik.php"]);
    _paq.push(["setSiteId", "7"]);
    var d=document, g=d.createElement("script"), s=d.getElementsByTagName("script")[0]; g.type="text/javascript";
    g.defer=true; g.async=true; g.src=u+"piwik.js"; s.parentNode.insertBefore(g,s);
  })();
</script>
*/ ?>
<!-- Piwik Image Tracker -->
<? //<noscript> ?><img src="http://piwik.domain.com/piwik.php?idsite=7&rec=1&action_name=<?php echo $_['fileTarget'] ?>" style="border:0" alt="" /> <? //</noscript> ?>
<!-- End Piwik -->
<!-- End Piwik Code --> 

Der funktionierte bis vor Kurzem auch sehr gut. Doch leider geht er seit geraumer Zeit nicht mehr. Ich glaube ich habe zwischen durch die OwnCloud geupdatet. Doch sicher bin ich mir nicht.
Als URLs bei der Website sind in den Piwik Einstellungen cloud.domain.com und ssl.webpack.de eingetragen.
Wenn ich nur den Image Tracker nehme gehts auch.

Wie kann ich den Javascript Tracker überprüfen ob er anspringt?

Danke schonmal für die Hilfe :slight_smile:


(Fabian Becker) #2

Im Browser (Chrome) F12 drücken - damit öffnet sich die Developer Console. Unter Network werden dann alle Requests gezeigt die gesendet werden. Wenn der JavaScript Tracker funktioniert findet sich dort ein Request an “piwik.php”. Alternativ mal unter “Console” schauen ob Fehler auftreten.


#3

hmm piwik.php taucht weder bei network auf noch werden fehler angezeigt. ich habe piwik auch auf weiteren (z.b. domain.com) website laufen, da geht alles problemlos.
ich werde es mir mal genauer ansehen und berichten was ich rausbekomme habe.


#4

also ich habe jetzt nochmal ein bisschen rumprobiert und bin dem problem auf die schliche gekommen.
und zwar habe ich ja piwik ohne ssl laufen. also einfach unter piwik.domain.com.
meine ownCloud läuft allerding mit ssl-verschlüsselung (SSL-proxy).
wenn ich jetzt den trackingcode mit dem bild nehme geht es. allerdings mit folgender warnmeldung: Gemischter Inhalt und dem folgendem link: Mixed content - Web security | MDN

beim javascript-tracking gehts nicht mehr mit diesem fehlermeldung: Content Security Policy: Gegen Direktive inline script base restriction wird verstoßen.

es scheint also ein problem mit gemischtem (https und http) content zu sein. ich kann mich errinnern, dass mozilla da was umstellen wollte. doch unter chorme scheint es ähnlich zu sein.

jetzt ist die frage, wie kann ich das lösen? muss ich die owncloud auch ohne ssl laufen lassen oder piwik mit?

was mir noch auffiel: wenn ich eine einfache html datei mit dem trackingcode erstelle und über die ssl Adresse aufrufe kommt der fehler nicht. die piwik.php taucht normal bei der netzwerkanalyse auf.

wenn sich das jemand genauer ansehen möchte, kann ich ihm auch pm die Adresse schicken.

/Edit: ich habe mal den Namen des Themas geändert


(Fabian Becker) #5

Piwik muss an der Stelle wirklich über SSL laufen. Alternativ könntest du versuchen, den Tracking Code so abzuändern, dass nur http statt https benutzt wird.


#6

[quote=“Fabian Becker”]
[…] Alternativ könntest du versuchen, den Tracking Code so abzuändern, dass nur http statt https benutzt wird.[/quote]

das habe ich ja mit der zeile var u=“http://piwik.domain.com/”; getan. im gegensatz zum originaltrackingcode von piwik. doch das hilf leider auch nicht. es schon wirklich ein problem mit dem laden von nicht verschlüsseltem inhalt in einer verschlüsselten verbindung zu sein.

habe jetzt mal mit einem alten browser (firefox 17) getestet, doch da gehts auch nicht. vlt liegt es dann auch an ownCloud. werde mich mal an das forum dort wenden.


#7

Hallo foomep,

hast Du inzwischen eine Lösung gefunden?

Ich stehe aktuell vor dem gleichen Problem.

Wenn ich das Skript wie hier empfohlen einbinde, verschwindet zwar die Fehlermeldung auf der Konsole, Zugriffe werden aber nach wie vor nicht gezählt.

Viele Grüße
hb

[size=x-small]Vielleicht kann jemand den Link reparieren, eigentlich sollte da das Wörtchen hier stehen, verlinkt auf die angegebene Seite…[/size]


#8

Guten Morgen,

dank der tatkräftigen Hilfe im Domainfactoryforum wurde eine Lösung gefunden, die wahrscheinlich auch bei anderen Webhostern mit anderen Proxy für https funktionieren wird.

Ausgangssituation:

Owncloud wird über Proxy https://proxy.tdl/ aufgerufen
Der eingebundene Piwiktrackingcode wird als unsicherer Inhalt geblockt.

Änderungen in OwnCloud:

In der config/config.sample.php gibt es entsprechenden Code für die config/config.php


/* Custom CSP policy, changing this will overwrite the standard policy */
"custom_csp_policy" => "default-src 'self'; script-src 'self' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; frame-src *; img-src *; font-src 'self' data:; media-src *",

Ich habe nun diesen angepassten Code in die config/config.php eingefügt


"custom_csp_policy" => "default-src 'self'; script-src 'self' 'unsafe-eval' 'unsafe-inline' ; style-src 'self' 'unsafe-inline'; frame-src *; img-src *; font-src 'self' data:; media-src *",

Darüberhinaus wird der eingebundene Trackingcode angepasst:

aus


var u=(("https:" == document.location.protocol) ? "https" : "http") + "://domain.tdl/piwik/";

wird


var u="https://proxy.tdl/domain.tdl/piwik/";

Nun werden die Zugriffe wieder gezählt. Allerdings taucht der Proxy in den Statistiken auf. Daher ist noch eine Anpassung in Piwik erforderlich. Dazu gibt es auch einen Eintrag in den FAQ.

Ich habe folgende Code in die config/config.ini.php eingefügt:


[General]
assume_secure_protocol = 1
; standard proxy
proxy_client_headers[] = HTTP_X_FORWARDED_FOR
proxy_host_headers[] = HTTP_X_FORWARDED_HOST

Nun funktioniert alles wie gewünscht.

[size=x-small]P.S.: Keine Ahnung, warum die URL-Einbindung nicht funktioniert…[/size]


#9

Guten Morgen,

dank Unterstützung im d)f Forum wurde eine Lösung gefunden.

Bei Interesse kann das Ergebnis hier nachgelesen werden:

Viele Grüße
hb


#10

meine lösung war bisher, nur das piwik image einzubinden. damit ging es doch zeigt nicht alle statistischen daten an.
werden mal die vorgeschlagene lösung von hb aus dem df forum probieren. danke dafür :slight_smile: