Mit htaccess third-party-scripts einer bestimmten Domain erlauben
Ich betreibe zwei Joomla-Websites und eine Matomo-Analytic-Installation nach folgendem URL-Muster:
Domain-1 mit einer Joomla Erweiterung "Buchungskalender".
Domain-2
Matomo.Domain-1
Schon länger beobachte ich, dass Webbrowser auf meiner "Domain-2" keine Matomo-Scripte ausführen , die von der Subdomain "Matomo.Domain-1" stammen, obwohl ich in Matomo CORS für die Domain-2 frei gegeben habe und auch versucht habe, in der htaccess der "Domain-2" die Verbindung zu "Matomo.Domain-1" als "Same-Origin" zu definieren.
Diese Problematik blieb bisher ungelöst.
Jetzt kam eine neue Aufgabe hinzu:
Auf "Domain-1" ist eine Joomla-Extension "Buchungskalender" installiert, über die meine Kunden einen Termin buchen können. Diese Extension funktioniert einwandfrei. Der Buchungskalender wird aus UI-Gründen in einen iFrame geladen und alle weiteren Vorgänge des insgesamt vierstufigen Ablaufs (vier verschiedene Ansichten, die im iFrame nacheinander dargestellt werden bis zum Abschluss der Buchung) funktionieren einwandfrei.
Nun möchte ich, dass dieser Buchungskalender auch von "Domain-2" aus zuverlässig erreicht werden kann. Auch hier soll der Buchungskalender (wie in "Domain-1") in einem iFrame arbeitet.
Mir ist klar, dass hierzu erlaubt werden muss, dass innerhalb des Context der "Domain-2" Inhalt der "Domain-1" in einen iFrame geladen wird und JS sowie PHP aus der "Domain-1" innerhalb der "Domain-2" ausführbar sein müssen.
Daraus ergeben sich zwei Fragen an die Community hier:
1.) Ist es überhaupt möglich, durch entsprechende Regeln und Definitionen in den htaccess-Dateien der beteiligten Domains dafür zu sorgen, dass auch aktuelle, stark auf Sicherheit ausgelegte Web-Browser die o.g. Scripte und PHP-Funktionen garantiert ausführen?
Wenn nein, erübrigt sich Frage 2.
2.) Welche Regeln und Definitionen in der htaccess von "Domain-1" und welche in der htaccess von "Domain-2" muss ich benutzen, damit mein Vorhaben gelingt?
Das hier ist aktueller Stand der Dinge:
In "Domain-1" ist CORS zu Gunsten der "Domain-2" gesetzt. Und hier sind die Header-Definitionen der htaccess zu "Domain-1"
Hier sind die Header-Definitionen der htaccess zu "Domain-2"
Domain-1 mit einer Joomla Erweiterung "Buchungskalender".
Domain-2
Matomo.Domain-1
Schon länger beobachte ich, dass Webbrowser auf meiner "Domain-2" keine Matomo-Scripte ausführen , die von der Subdomain "Matomo.Domain-1" stammen, obwohl ich in Matomo CORS für die Domain-2 frei gegeben habe und auch versucht habe, in der htaccess der "Domain-2" die Verbindung zu "Matomo.Domain-1" als "Same-Origin" zu definieren.
Diese Problematik blieb bisher ungelöst.
Jetzt kam eine neue Aufgabe hinzu:
Auf "Domain-1" ist eine Joomla-Extension "Buchungskalender" installiert, über die meine Kunden einen Termin buchen können. Diese Extension funktioniert einwandfrei. Der Buchungskalender wird aus UI-Gründen in einen iFrame geladen und alle weiteren Vorgänge des insgesamt vierstufigen Ablaufs (vier verschiedene Ansichten, die im iFrame nacheinander dargestellt werden bis zum Abschluss der Buchung) funktionieren einwandfrei.
Nun möchte ich, dass dieser Buchungskalender auch von "Domain-2" aus zuverlässig erreicht werden kann. Auch hier soll der Buchungskalender (wie in "Domain-1") in einem iFrame arbeitet.
Mir ist klar, dass hierzu erlaubt werden muss, dass innerhalb des Context der "Domain-2" Inhalt der "Domain-1" in einen iFrame geladen wird und JS sowie PHP aus der "Domain-1" innerhalb der "Domain-2" ausführbar sein müssen.
Daraus ergeben sich zwei Fragen an die Community hier:
1.) Ist es überhaupt möglich, durch entsprechende Regeln und Definitionen in den htaccess-Dateien der beteiligten Domains dafür zu sorgen, dass auch aktuelle, stark auf Sicherheit ausgelegte Web-Browser die o.g. Scripte und PHP-Funktionen garantiert ausführen?
Wenn nein, erübrigt sich Frage 2.
2.) Welche Regeln und Definitionen in der htaccess von "Domain-1" und welche in der htaccess von "Domain-2" muss ich benutzen, damit mein Vorhaben gelingt?
Das hier ist aktueller Stand der Dinge:
In "Domain-1" ist CORS zu Gunsten der "Domain-2" gesetzt. Und hier sind die Header-Definitionen der htaccess zu "Domain-1"
<IfModule mod_headers.c>
Header set X-XSS-Protection "1; mode=block"
Header set X-Frame-Options "SAMEORIGIN"
Header always set Content-Security-Policy "frame-ancestors 'self' https://Domain-02.de https://Matomo.Domain-01.de"
Header set X-Robots-Tag "index, follow"
Header set X-Permitted-Cross-Domain-Policies "none"
Header set Referrer-Policy "origin-when-cross-origin"
Header set Cross-Origin-Opener-Policy "same-origin"
Header always set X-Content-Type-Options "nosniff"
Header always set Cross-Origin-Resource-Policy "same-origin"
Header always set Strict-Transport-Security "max-age=63072000"
SetEnv modHeadersAvailable true
</IfModule>
Hier sind die Header-Definitionen der htaccess zu "Domain-2"
<IfModule mod_headers.c>
Header set X-XSS-Protection "1; mode=block"
Header set X-Frame-Options "SAMEORIGIN"
Header always set Content-Security-Policy "frame-ancestors 'self' https://Domain-1.de https://Matomo.Domain-1.de"
Header set X-Robots-Tag "index, follow"
Header set X-Permitted-Cross-Domain-Policies "none"
Header set Referrer-Policy "origin-when-cross-origin"
Header set Cross-Origin-Opener-Policy "same-origin"
Header always set X-Content-Type-Options "nosniff"
Header always set Cross-Origin-Resource-Policy "same-origin"
Header always set Strict-Transport-Security "max-age=63072000; preload"
SetEnv modHeadersAvailable true
</IfModule>
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 668598
Url: https://administrator.de/contentid/668598
Ausgedruckt am: 21.11.2024 um 23:11 Uhr
4 Kommentare
Neuester Kommentar
Nur als Anmerkung: X-Frame-Options is deprecated und sollte nur durch eine CSP mit frame-ancestors ersetzt werden .., und das SAMEORIGIN verhindert bei dir genau das was du eigentlich willst, most strict option wins.