Erkennen ob Webseite vom eigenen Host geladen wurde bwz obs von einen Iframe geladen

splasch

Erfahrenes Mitglied
Hi
Welche möglichkeiten gibt es zu erkennen ob die eigenen Webseite nicht von einer Fremden Webseite in ein Iframe geladen wird oder Frame.

Ich möchte da in Php einen kleine schutz funktion schreiben die verhindern soll das die Eigene Seite in fremde Webseiten reingeladen werden kann.

Frame könnte man mit Javascript erkennen.Weiß net ob das bei Iframe auch geht.
Aber über Php könnte man doch auch prüfen ob die seite vom eigenen Webspace geladen wurde oder einer Fremden seite (Oder irre ich mich da)

Also was kann man mit hilfe php da alles machen damit das verhindert wird.

Wie würdet ihr bei erkennung vorgehen das laden der Seite abrechen oder zu versuchen die Seite neu zu laden in einem eigenen Fenster.

Mfg Splasch
 
Schau dir das mal an:
PHP:
<?
$referer ="$HTTP_REFERER ";
echo "Sie kommen von der Seite: $referer";
?>

Dann checkst du ob das dein Referer ist und wenn nicht, dann setzt du ein reload mit 0 sekunden und target= parent und schon gehört die volle seite dir
 
Und Leute die das Übertragen des Referer ausgestellt haben, werden völlig ausgeschlossen?

Übrigens sollte man lieber
PHP:
$_SERVER['HTTP_REFERER']
nutzen, aufgrund von register_globals.
 
Hmm

Habs nun mal zur not mit $_SERVER['HTTP_REFERER']
gelöst aber wie schon oben erwähnt funktioniert das nicht immer.

Kennt jemand eine sicher Methode das ganze zu lösen.

Momentan sieht die Not Lösung so aus.

PHP:
$url=$_SERVER['HTTP_REFERER']; // Url vom Header des aufrufers
$url=str_replace ( 'http://www.',"",$url);
$url=str_replace ( 'http://',"",$url);
$url=str_replace ( 'www.',"",$url);
$url=substr($url, 0, 20);  // ersten 20 zeichen
if ($url!=""){ // Fals 'HTTP_REFERER nichts ermitteln kann dann kein schutz
if ($url!="Eigener_Domainname.com"){
	
	die("
	<script language=\"JavaScript\"> 
       top.location.href=\"http://Eigener_Domainname.com\"; 
 	</script> "
	);exit();
}
}

Mfg Splasch
 
Den HTTP_REFERER kannst du da nicht anwenden :eek:

Der prüft, woher der Besucher zu dir kam.... aber das tut er auch, wenn die Seite ganz normal aufgerufen wurde, ohne in ein Frame geladen zu werden...es wären also keine Links von ausserhalb möglich(ich glaube nicht, dass du das willst.)

Wie würdet ihr bei erkennung vorgehen das laden der Seite abrechen oder zu versuchen die Seite neu zu laden in einem eigenen Fenster.

Ich würde die Seite in dem selben Fenster neu Laden....falls du bei dir selbst keine Frames verwendest, einfach überall
Code:
<script type="text/javascript">
<!--
if(self!=top)top.location=self.location;
//-->
</script>
...hinein und fertig.
 
Der prüft, woher der Besucher zu dir kam.... aber das tut er auch, wenn die Seite ganz normal aufgerufen wurde, ohne in ein Frame geladen zu werden
Das ist so nicht ganz richtig HTTP_REFERER gibt wieder die Adress auf die verwiesen wurde. Das bedeutet wenn die Seite von eine Fremden seite geladen wurde dann gibt er diese wieder ansonsten gibt er die eigene Domain wieder.

Das heißt sobald jemand versucht die Seite über einen anderen Host zu laden dann gibt HTTP_REFERER den Host an über den versucht wurde die Seite zu laden.
Und keines weg den Besucher also der surft kann irgendwo sein trozdem wird HTTP_REFERER nur die Domian der eigenen seite zurück liefern.
...es wären also keine Links von ausserhalb möglich(ich glaube nicht, dass du das willst.)
Das ist auch nicht ganz richtig links sind insofern möglich wenn sie nur auf die Domain verweisen.Aber sobald man versucht teile wie Bilder nur zu Laden dann greift der schutz ein und es wird statt dem Teil (bsp nur dem Bild) die ganze Webseite geladen. Das bedeuted einbinden ist nicht möglich von einzelene Elemente der Hp.Sobald man das veruschen würde er einfach die Ganze Hp im Selben Fenster neu Laden und den alten Inhalt im dem fall komplett überschreiben und das ist ja so gewünscht da man ja nicht will das der eindrück ensteht das man auf der eigenen Hp nun fremdwerbungen oder fremde links stehen hat.

Ich würde die Seite in dem selben Fenster neu Laden....falls du bei dir selbst keine Frames verwendest, einfach überall

Das ist ein gute und schöne lösung die auch gewünscht ist. Aber was machst du wenn der Client Javascript deaktiviert hat. Dann landet er im unerwünschten Iframe mit der fremd werbung die dann im ende die eigene Webseite schlecht macht.
Stell dir nur vor was passieren würde wenn die dort illegale inhalte einfach ausenherum dazu schreiben.Da könnte man das leicht verwechseln und die klage welle könnte dann den Ahnungslosen betreiber treffen.

Übrings hab ich mitterweilen herausgefunden das die Seite der das macht in Frankreich sitzt und auch wen diese gehört alllerdings die von der Haupt domian.Da das ganze von der Subdomain läuft kann es sein das jemand anderes dafür verantwortlich ist.

Wer sich anschauen will wie sowas aussieht was der da dort macht findet es unter
http://economy.jdmag.net/dir/Indust...erheitsausrustung/index-4-27633-0-3-0-0-.html
Dort werden jede menge fremde Webseiten einfach in ein Div Iframe geladen und oben und unterhalb Werbung eingeblendet.Vorallem welche die überhaupt nicht geduldet werden.

Mfg Splasch
 
Zuletzt bearbeitet:
Tut mir Leid, aber das, was ich deinem nur schwer verständlichen Post entnehme, ist schlicht falsch.

HTTP_REFERER liefert, sofern vom Browser bereitgestellt, die Adresse, von welcher die aktuelle Adresse aufgerufen wurde.
Es spielt dort weder der HOST eine Rolle, noch die Tatsache, ob etwas in einem Frame oder sonstwie geladen wurde.

Wenn du es nicht glaubst.... http://doktormolle.de/ref.php
Keine Frames da, und trotzdem ist der REFERER gesetzt(sofern der Browser das will)


Zu deinem Einwand betreffs Javascript: ohne ist diese Sache nun mal nicht machbar, denn Javascript ist die einzige Möglichkeit, überhaupt zu ermitteln, ob etwas in einem Frame geladen wurde, denn der Server kennt keine Frames.


BTW: deine Variante verwendet auch JS :suspekt:
 
Zu prüfen, ob eine Webseite in einem Frame geöffnet wurde, ist nur mit clientseitigen Mitteln möglich. Denn erst im Browser werden die unterschiedlichen Dokumente (Frame-Dokument und Dokument im Frame) zusammengesetzt dargestellt.
Im HTTP – auf das die HTTP-Referrer-Variante basiert – ist diese Beziehung der zwei Dokumente gar nicht ersichtlich.
 
BTW: deine Variante verwendet auch JS

Ja aber man muß den php code mal genau betrachten was da gemacht wird.Wenn java ausgeschaltet ist dann wird die Seite auch nicht geladen.Soweit funktioniert diese Variante auch.
Was HTTP_REFERER macht ist mir auch klar.

Bei meiner Variante wird auch net geprüft ob Frame geladen wurden oder nicht.Sondern wenn man sich mal genauer den Code ansieht. Dann macht der nix anderes als den Domain namen zu prüfen. Wenn dieser nicht stimmt dann trifft erst der javascript link in kraft. Kann dieser nicht ausgeführt werden weil es ausgeschalten ist dann wird weiter die Seite erst garnicht geladen da ein Abruch mittels php folgt.
Möglicher weiße ist auch ein erneuter aufruf über php möglich dann kann man das javascript oben ganz weg lassen.

Wichtig ist nur das das Ziel erreicht wird wie nun dies Prüfung folgt ist neben sache.Wie gesagt das ist nur mal eine Not Lösung es gibt sicher bessere Möglichkeiten das zu Prüfen.

Ihr dürft euch dabei nicht zusehr auf eine sache versteifen!
Man muß eben auch andere Möglichkeiten in betracht ziehen wie man zu dem Ziel kommt.

Ich glaube sicherer were das ganze wenn man einfach immer die Aktuelle komplette url ausliest dann sollte das immer funktionieren.Und dann einfach prüft ob der Domain name vorne stimmt wenn was anderes davor steht kann man davon ausgehen das es von einer Fremden Seite geladen wurde.

Welche Server Variablen würdet ihr benutzen um die Aktuelle Url auszulessen und zwar in dem Format wie es im Browser url eingabe steht (Bsp. http.//Webname.de)
Und welche php funktion würde ihr verwenden um die Seite umzuleiten auf die Eigene Domain.

Mfg Splasch
 
Zuletzt bearbeitet:
Zurück