Sonstiges

Framebuster gezielt gegen einzelne Domains einsetzen

Ausgangspunkt ist der Fall „Ralf zu Jung„. Der Domaininhaber hat seine Seite mit meinen Inhalten sozusagen ausgefüllt, indem er meine Seite in einem Frame einpackt und anzeigt (nennt sich „Schaufenster„). Zu dem rechtlichen Aspekt hat sich rechtzweinull per Kommentar geäußert.

Technisch gesehen kann man oW verhindern, dass Dritte die Inhalte deiner Seiten über ein Frame einbinden, indem man einen sog. „Frame Buster“ nutzt. Das Dumme bei einem simplen Frame Buster aber ist, dass man uU Dritte aussperrt, die per Framing arbeiten. So haben sich nach Einbau des Codesnippets User gemeldet, die Netvibes nutzen oder aber eine Readersoftware, um meine Inhalte in ihrer gewohnten Umgebung zu lesen, aber nicht mehr konnten.

Insofern geht es darum, wie man den Frame Buster so umbaut, dass man dedizierte Domains aussperrt und alle anderen, die nicht in der Negativliste stehen, eben nicht. SteBu hat mir dazu folgenden Code zukommen lassen:

{script language="javascript" type="text/javascript"}
if (top != self)
{
var h = top.location.host;
var tk = h.indexOf('böse-domain.de');
if(tk != -1)
{
top.location = self.location;
}
}
{/script}

Die geschweiften Klammern um „script language“ und „script“ sind durch spitze Klammern zu ersetzen. Das Codesnippet würde bei einem WordPress-Blog in die Header.php einzufügen sein. Genauergesagt in den Head-Bereich, also noch vor dem öffnenden Body-Tag. Frage: Ist das soweit geschickt genug oder wären andere Lösungen noch besser? Zusatzbemerkung: Dieser Frame Buster killt nur eine Domain.


Neue Stellenangebote

Growth Marketing Manager:in – Social Media
GOhiring GmbH in Homeoffice
Senior Online Marketing Manager (w/m/d) – Schwerpunkt Social Media
Oldenburgische Landesbank AG in Oldenburg, Frankfurt am Main
(Senior) Paid Social Media Manager (m/w/d)
Content Fleet GmbH in bundesweit

Alle Stellenanzeigen


Testergebnis des Codes: Es funktioniert nicht. Nach Aufruf der externen Domain wird meine Seite nicht wie bei einem Frame Buster-Effekt üblich umgehend „weitergeleitet“ (im Grunde nur ein Reload).

Update
Ali B hat folgenden Code gepostet, der nach einem Test auch wunderbar funzt:


{script language="javascript" type="text/javascript"}
var S=['www.böse-domain.de','böse-domain.de'];
function chk(l) {for (var i=0,s;s=S[i];i++) if (l==s) return 1;}
if (window!=top) {
var l;
if (document.referrer && (l=document.referrer.split('/')[2]) &&chk(l)) top.location.href="http://www.gehe-zu-meiner-domain.de";
}
{/script}

Geschweifte Klammern um „Script“ oben und unten durch spitze Klammern ersetzen.

Über den Autor

Robert Basic

Robert Basic ist Namensgeber und Gründer von BASIC thinking und hat die Seite 2009 abgegeben. Von 2004 bis 2009 hat er über 12.000 Artikel hier veröffentlicht.

16 Kommentare

  • naja auf js würde ich z.B. nicht setzen. Denn wenn ich mein JS deaktiviere dann funktioniert dein Script nicht mehr.
    Daher würde ich auf .htaccess setzen z.B. und dann ein forbidden 403 bei bösen Domains schmeissen. Oder ich schreib mal ein kleines WP-Plugin falls es sowas noch nicht geben sollte.

  • man könnte evtl. per Javascript noch im Body der Seite selbst prüfen ob die Seite in einem Frame geladen wurde und dann einen reload ausführen, dies wäre aber alles andere als eine Ideallösung.

    Generell alle Frames sperren wäre übrigens in der Tat ungünstig… ich persönlich verwende z.B. oft Google Reader mit better GReader und lasse mir die Seite in einem iframe für das jeweilige Feed-Objekt anzeigen.
    Da dies nicht die Standardvorgehensweise von GReader ist, würde selbiger wohl eher nicht in irgendwelchen Whitelists auftauchen, Nutzer derartiger Systeme aber werden damit permanent genervt.

  • so funzt es:

    var S=[‚www.boese-domain.com‘,’boese-domain.com‘];

    function chk(l) {
    for (var i=0,s;s=S[i];i++) if (l==s) return 1;
    }

    if (window!=top) {
    var l;
    if (document.referrer && (l=document.referrer.split(‚/‘)[2]) &&chk(l)) top.location.href=“http://blog.basic-thinking.de“;

    }

  • @Stebu, Ali, thx
    Ali, damit haben wir schon die Lösung für mehrere auszuschließende Domains!

    @Manuel, uffz, das ist gut!

    @Micha: Nope:)

    @Stebu: Gestest, geht nicht;) Werde jetzt noch Alis Code einbauen

  • […] wird. Wie diese Fälle rechtlich zu bewerten sind und welche Möglichkeiten der Betroffene (neben technischen Hindernissen) in verschiedenen Konstellationen hat, soll nachfolgend behandelt werden. Um allerdings gleich […]

  • Leider muss ich mich als PC-Blondine outen:

    Dass ich einen dieser Codes irgendwo hinkopieren muss und den „Feindesnamen“ an die Stelle von boese-Domain setzen, habe ich verstanden.
    Nur:
    Wohin muss ich ihn kopieren? Und welchen Code ich nun kopieren muss, habe ich leider nicht begriffen. Ich bin sonst nicht völlig blöd, aber meine Qualitäten liegen leider nicht im einzugsgebiet der Computerologie.

  • hi, also ich möchte ja nicht meckern, aber… der PHP-Buster von Ali B. funktioniert auf meiner Seite nicht. Momentan lädt bei mir 123people.com eine Seite nach, die auf meiner eigenen Seite in einem iframe angezeigt wird. Deshalb kann ich nicht einfach „busten“, wie ich möchte, sondern müßte gezielt alle Seiten ausschließen, außer meiner eigenen Domain. Hab mich schon totgesucht mit Google und Konsorten, aber das einzig brauchbare (in PHP) habe ich hier gefunden. Nun funktioniert aber die Domain-Unterscheidung nicht, die Weiterleitung nebenbei auch nicht, da müßte man wohl die // auskommentieren, oder?. Ich verstehe kein Wort PHP, sorry, und erst einen Kurs machen zum Profi-Programmierer kann ich zeitlich nicht. Mag mir vielleicht jemand helfen? Das Problem haben bestimmt auch andere….

    Danke!
    lg Jens