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

Eben...und das würde auch passieren, wenn ich einfach von einer fremden Seite aus verlinke, bspw. von hier oder einer Suchmaschine.

Nein das bassiert eben nicht könnt ihr gerne testen.Der code ist breist in der Hp ein gebaut.
Ich setzt euch mal einen link von der Hp rein damit ihr seht das es geht.
http://www.hs-arbeitsschutz.com/

So nun noch der Link wo der schutz greift seht euch zuerst aus der liste eine anderen an dann meine
http://economy.jdmag.net/dir/Indust...erheitsausrustung/index-4-27633-0-3-0-0-.html

Dort klick ihr mal auf Sabco AB dann seht ihr das die im den Iframe geladen wird.
Dan geht noch mal zurück auf den oben geposten link und klickt auf Sandra Hradtezky - Arbeitsschutz und Gefahrenstofflagerung dann werdet ihr sehen das der Schutz so funktioniert.

Wenn ihr das jetzt noch immer nicht Glaubt dann schaltet mal javascript aus dann werdet ihr sehen das das Laden der Seite unter dem Iframe abgebrochen wird.

Mfg Splasch
 
Zuletzt bearbeitet:
Wenn aber jemand JavaScript deaktiviert hat, landet er auf einer für ihn leeren Seite.

Ja aber nur wenn von einer Fremden domain versucht wird meine Seite einzubinden. Ist javascript ausgeschalten und man hat einen Suchmaschienen link oder Forum link wie hier dann kommt man genauso auf die Seite.

Daher war ja auch vorhin die Frage obs eine umleitung möglichkeit mittel php gibt.Wurde wohl komplett hier überlesen.

2 Frage war wie man am besten die komplette Url auslesen kann dann würde nähmlich der Schutz immer greiffen.

Ich geb euch hier mal ein Beispiel wie der Schutz funktioniert damit ihr es besser verstehen könnt.

Orginal Domain lautet: Testseite.de
Fremde Domain die versucht die Seite zu landen lautet: Anderename.de/fremdseite.php

So nun vergleicht die Schutz funktion die Domain namen stimmt die nicht mit der zuvor fix definieren domain überein beginnt er die Seite neu zu laden sollte das nicht gehen weil javascript aus ist dann bricht er über die exit funktion den Ladevorgang der Seite ab.

Hier noch mal der Komplette Aktuelle schutz code
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);
//echo "ohne".$url."<br>";
$url=substr($url, 0, 20);  // ersten 20 zeichen
//echo $url."<br>";
if ($url!=""){
if ($url!="hs-arbeitsschutz.com"){
	
	die("
	<script language=\"JavaScript\"> 
       top.location.href=\"http://www.hs-arbeitsschutz.com\"; 
 	</script> "
	);exit();
}
}
Und im Hmtl bereich als zusatz absicherung noch die Frame prüfung
PHP:
<script type="text/javascript">
<!--
if(self!=top)top.location=self.location;
-->
</script>

Mfg Splasch
 
Zuletzt bearbeitet:
Ja aber nur wenn von einer Fremden domain versucht wird meine Seite einzubinden. Ist javascript ausgeschalten und man hat einen Suchmaschienen link oder Forum link wie hier dann kommt man genauso auf die Seite.
Hast du das denn überhaupt schon ausprobiert? Das HTTP-Referrer-Feld wird eben nicht nur gesetzt, wenn ein Dokument in ein anderes mittels Frame eingebunden wird, sondern auch, wenn man einer automatischen Weiterleitung oder einem normalen Link folgt (vorausgesetzt der Browser sendet überhaupt diese Information). Und genau letzteres kommt aufgrund der Natur des Hypertextes ziemlich häufig vor.

Daher war ja auch vorhin die Frage obs eine umleitung möglichkeit mittel php gibt.Wurde wohl komplett hier überlesen.
Es gibt die Möglichkeit eine HTTP-Weiterleitung zu senden. Dies wird dir aber nicht helfen, da das HTTP eben keine Frames kennt sondern diese nur in der Browserdarstellung existieren.
 
Hast du das denn überhaupt schon ausprobiert? Das HTTP-Referrer-Feld wird eben nicht nur gesetzt, wenn ein Dokument in ein anderes mittels Frame eingebunden wird, sondern auch, wenn man einer automatischen Weiterleitung oder einem normalen Link folgt (vorausgesetzt der Browser sendet überhaupt diese Information). Und genau letzteres kommt aufgrund der Natur des Hypertextes ziemlich häufig vor.

Klar hab ich alles ausgetest einmal mit eingeschalten javascript und einmal mit ausgeschalten javascript.Du hast da schon recht das man einen andere url bekommt wens über einen link aufgerufen wurde nur ist das nicht schlim weil im dem falls wo der schutz eingreift nix anderes macht als die Seite neu zu laden und daher im schlimsten fall die Seite 2 mal geladen wird (Wohl da sicherlich unötig ist). Ist ja auch nur die erste Not lösung mußte eben schnell gehen.

Der nächste schritt wird sein die Url nicht über 'HTTP_REFERER' auszulesen sondern über die Server variablen die Aktuelle url auszulesen dann ist es nähmlich egal von woher der link stammt.
Es gibt die Möglichkeit eine HTTP-Weiterleitung zu senden. Dies wird dir aber nicht helfen, da das HTTP eben keine Frames kennt sondern diese nur in der Browserdarstellung existieren
Daran hab ich auch schon gedacht es ist net schlim wenn die Frames nicht erkannt werden.Dafür ist ja dann die Schutz funktion zuständig auch wenn diese zwar keine Frames erkennt aber zumindesten erkennt das da was nicht stimmt und daraufhin dann die Seite neu Ladet.Oder eben im Notfall abricht wenn das alles nix nützt.

Mfg Splasch

Ps Nachtrag :
Versteh mich nicht falsch aber es ist momentan besser wenn die Seite nicht angezeigt wird.Als man bekommt eine klage wegen eben solchen Fremden Webseiten die dann villeicht sogar noch ilegale inhalte einfügen.

Für die Dauer werd ich was ohne Javascript schreiben müßen entuell dann die http weiter leitung.
 
Zuletzt bearbeitet:
Ich glaube du verstehst noch nicht ganz wie Frames funktionieren. Ein in einem Frame geladenes Dokument ist ein autarkes Dokument wie als würde es in einem separaten Fenster oder Tab geöffnet. Nur auf der Clientseite wird es innerhalb eines anderen Dokuments dargestellt und findet sich auch im DOM wieder.

Das HTTP macht jedoch keinen Unterschied, ob der Browser, an den das Dokument geschickt wird, es in einem Fenster, einem Tab oder eben einem Frame öffnet. Deswegen wirst du auch mit HTTP-Mitteln dieses Problem nicht lösen können. Denn auch durch das Neuladen des Dokuments, was zwar eine Änderung des HTTP-Referrers bewirkt, würde das Dokument eben nur im selben Fenster, Tab oder eben Frame neu geladen.

Die einzige verlässliche Möglichkeit ist das DOM im Browser zu prüfen, ob das aktuelle Dokument gleichzeitig das oberste ist, was bedeutet, dass es direkt aufgerufen wurde.
 
Ja ist nur die Frage wie man das dann im Code schreibt.
Du hast recht bei http umleitung wird nicht auf top verwiesen wie beim javascript umleitung daran habe ich im moment nicht gedacht.

Mir ist da noch was eingefallen man könnte ja im Falle wenn javascript ausgeschalten ist einfach nur einen link posten mit target="_top" .
Oder kann man das auch automatisch machen über http refresh

Mfg Splasch
 
Zuletzt bearbeitet:
Versteh mich nicht falsch aber es ist momentan besser wenn die Seite nicht angezeigt wird.Als man bekommt eine klage wegen eben solchen Fremden Webseiten die dann villeicht sogar noch ilegale inhalte einfügen.
Wie sollte solch eine Anklage lauten? Etwa „geduldetes Einbinden eigener Webseiten in Webseiten anderer mit rechtswidrigen Inhalten“? Das ist doch absurd.

Das Umgekehrte ist eher der Fall: du könntest die Betreiber der Websites, die deine Seiten durch Frames einbinden, erst einmal dazu auffordern, dies zu unterlassen, und dann sogar verklagen. Denn dabei handelt es sich vermutlich um ein unerlaubtes öffentliches Zugänglichmachen (siehe auch Framing und Urheberrecht - Das Setzen von Frames mit fremden Inhalten kann eine Urheberrechtsverletzung darstellen), das laut Urheberrecht erst einmal dir allein als Urheber zusteht.
 
Wie sollte solch eine Anklage lauten? Etwa „geduldetes Einbinden eigener Webseiten in Webseiten anderer mit rechtswidrigen Inhalten“? Das ist doch absurd.
Weil es eben dadurch schnell zu Verwechslung kommen kann als erstes schauen die doch alle auf Impressum und nicht wehm die Domain gehört.Klar kann man dann belegen das man nicht schuld daran ist aber die Rechstverdreher finden da immer was und man könnte mir eine Teil schuld anhängen.

So hab mal eine abänderung gemacht damit wenn javascript aus ist zumindesten ein link erscheint der die Seite dann Ladet
PHP:
	die("
	<script language=\"JavaScript\"> 
       top.location.href=\"http://www.hs-arbeitsschutz.com\"; 
 	</script>
	<a href=\"http://www.hs-arbeitsschutz.com\" target=\"_top\">Weiter zu www.hs-arbeitsschutz.com</a>
 	"
	);exit();
So ist dann möglich das er zumindesten einen link hat den man anklicken kann wenn Javascript ausgeschaltet ist oder kann man das irgendwie auch automatiseren.

Mfg Splasch
 
Zuletzt bearbeitet:
Klar kann man dann belegen das man nicht schuld daran ist aber die Rechstverdreher finden da immer was und man könnte mir eine Teil schuld anhängen.
Das ist doch Quatsch. Dann würden doch auch Zeitungsverleger verklagt, wenn Erpresser Wörter oder Buchstaben ihrer Zeitung zum Schreiben eines Erpresserbriefes verwenden.

Mein Vorschlag: Schreibe irgendwo auf deiner Website, dass du es nicht duldest, dass deine Webseiten durch Frames in andere eingebunden werden. Gleichzeitig kannst du dann bei Verstößen mit folgenden JavaScript-Code den Frame zerstören und den Verstoß protokollieren, um anschließend den Betreiber darauf hinzuweisen.
PHP:
if( self != top ) {
<?php

	if( isset($_SERVER['HTTP_REFERER']) && ($referer = parse_url($_SERVER['HTTP_REFERER'])) && isset($referer['host']) && $referer['host'] != $_SERVER['SERVER_NAME'] ) {
		echo '(new Image()).src = "http://example/frameDetective.php?url='.urlencode($_SERVER['HTTP_REFERER']).'";';
	}

?>
	//alert("Diese Webseite darf nicht in einem Frame angezeigt werden!");
	top.location.href = self.location.href;
}
 
Zurück