NewsShit! … weil Blogs nicht immer lieb sein müssen.

X-FRAME-OPTIONS

von NewsShit! (7. Februar 2010, 17:11)

Manchmal ist es lustig, wie man auf Programmierung kommt – obwohl man etwas völlig anderes vorhatte: Ich habe im Netz nach Testberichten für den neuen Ford Fiesta gesucht, als mir der Internet Explorer 8 (steinigt mich!) folgende Meldung überbrachte:

Dieser Inhalt kann nicht in einem Frame angezeigt werden.


Eine Auto-Seite hat dem IE irgendwie gesagt, dass sie nicht ins Frameset anderer Seite gezwängt werden darf (was übrigens einen Urheberrechtsverstoß darstellen kann). Ich will das auch nicht und habe das bisher über ein Javascript gelöst:

if (top != self) top.location = self.location;

Wer zum Beispiel über die Google-Bildersuche auf ein Bild hier auf NewsShit! stieß, wurde immer auf die Seite weitergeleitet, die das Bild beinhaltet. Kann zwar nerven aber wenn der Besucher eigentlich nicht an meiner Seite interessiert war, ist’s nicht mein Problem…


Ich googelte und fand raus, wie die Auto-Seite das machte: Sie sandte im PHP-Header einen neuen Befehl aus, der vom Internet Explorer 8 erkannt, vom Firefox-Plugin “NoScript” verarbeitet und wohl auch demnächst vom Firefox selbst verstanden wird:

<? header("X-FRAME-OPTIONS: DENY"); ?>


Dieser Befehl wird nun auf allen meinen Seiten als Header gesendet. Er löst zwar mein Javascript (siehe oben) nicht ab aber er ist weitaus komfortabler … zumindest aus Sicht der Betrachter. Um es mal zu probieren, einfach hier schauen und staunen.

Es gibt neben DENY auch noch den Switch SAMEORIGIN. Mit dem wird der Aufruf von Frames durch die eigene Seite erlaubt. Aber sowas tun ja Webdesigner nicht, wenn sie mit der Zeit gehen und was auf sich halten.


Und für die ganz harten Nerds: Da gibt’s wohl auch was für Apache…

Merken & Weitersagen
NewsShit! stellt einige Themen überspitzt satirisch dar. Bitte erst nachdenken und dann kommentieren!
Meine Kurznachrichten: www.twitter.com/NewsShit

Hinterlasse einen Kommentar

Dein Kommentar *

Alle mit * gekennzeichneten Felder müssen ausgefüllt werden.