So prüfst Du mit PHP, ob Webseite im iFrame aufgerufen wird

Was ist PHP
bf6857d5a0a146a6bd0f0621e56947f0

Läuft Deine Website in einem iFrame?

Javascript und PHP sind ja bekanntlich wie „Eisbär & Pinguin“. Der Eine lebt am Nordpol, der Andere schippert irgendwo am Südpol herum und deshalb kommen die sich nie in die Quere. JavaScript wird im Browser ausgeführt, PHP auf dem Server.

Manchmal möchte ein PHP Programm auf dem Server aber wissen, ob im Browser eine Webseite in einem iFrame aufgerufen wird.

Eine Anwendung kann sein: Wird Inhalt über ein iFrame geladen, soll WordPress weder eine Sidebar noch einen Footer ausgeben.

Klar, Javascript erkennt das alles wunderbar. Aber Javascript wird leider erst im Browser des Besuchers ausgeführt – wenn die fertige Website inkl. Sidebar und Footer schon eingetrudelt ist.

Ich durchsuche das Netz nach Lösungen per AJAX, JQuery und PHP. Doch wochenlang vergebliche Mühe. Ich gab das Projekt, das Vorhaben schon auf – bis es wieder aktuell wurde.

Website im iFrame geladen? Nutze eine neue HTTP-HEADER Funktion!

Es ist eine neue HTTP-HEADER-Funktion aufgetaucht, mit welcher Du herausfinden kannst, ob in einer Website eine andere Website per iFrame geladen wurde.

Der PHP-Code

if( isset($_SERVER['HTTP_SEC_FETCH_DEST']) && $_SERVER['HTTP_SEC_FETCH_DEST'] == 'iframe' ) echo "<hr>iFrame<hr>";

$_SERVER[‚HTTP_SEC_FETCH_DEST‘] gibt den Initiator der ursprünglichen Abrufanforderung. Auf diese Weise können Server bestimmen, ob eine Anforderung bedient werden soll, je nachdem, ob sie für die erwartete Verwendung geeignet ist.

Diese Browser unterstützen die neue HTTP-HEADER Funktion

Dummerweise ist die vorgestellte Funktion so „neu“, dass nur neue Browser sie unterstützen.

firefox 2022 03 25 20 36 36

  • Firefox ab 90 (Juli 2021)
  • Chrome ab 80
  • Edge ab 80
  • Opera ab 67
  • IE nein
  • Safari nein

Allerdings haben die Leute eher stets neue Browser-Versionen installiert, als dass sie ihr Betriebssystem regelmäßig updaten. Wer einen alten Windows 7 Rechner benutzt, hat nicht zwangsläufig einen „alten“ Browser, denn die Browser updaten sich (meisten) selbstständig und das regelmäßig.

Folgende Statistik ist von stetic.com.

firefox 2022 03 25 20 25 02

Laut dieser Statistik hat praktisch kein PC einen veralteten Browser in Benutzung. Abgesehen von Browser, die sich mal wieder gegen den Fortschritt entscheiden und sich kategorisch verweigern.

Noch einmal zum Verständnis: Diese Funktion prüft nicht, ob der Inhalt eines iFrame vollständig geladen wurde, sie checkt, ob die aufgerufene Website in einem iFrame aufgerufen wurde – oder nicht.

Leider funktioniert die Abrage nur bei Webseiten mit SSL Zertifikat (HTTPS://). Bei Urls mit „http://meine-domain.de“ greift diese Prüfung nicht!