Direkter Zugriff auf Seite verbieten

Hallo,
gibt es eine Möglichkeit, den direkten Zugriff auf eine Seite durch die Eingabe (z.B www.test.de/d/888/abc.htm) zu verhindern. Ich möchte, dass der Zugriff nur über einen Pfad wie (z.B. www.test.de/index.htm) und Ziel anklicken, zu oben genannter Seite führt.
Bis denn dann
Olaf

Hallo,

ja, das geht. Zum Beispiel so:

if (document.referrer == "") 
{
 // gar nix machen, weil Referrer richtig
}
else
{
 document.location.href = "http://localhost" ;
}

Hierbei wird der Referrer geprüft, ob selbiger leer ist, natürlich kann man hier auch einen Wert eingeben. Wenn der Wert nicht übereinstimmt, wird die Seite umgeleitet zu http://localhost.

Marco

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Ergänzung
Im Referrer steht die Adresse der Seite, die der Surfer vorher besucht hat.

Marco

Hallo,

ja, das geht. Zum Beispiel so:

if (document.referrer == „“)
{
// gar nix machen, weil Referrer richtig
}
else
{
document.location.href =
http://localhost“ ;
}

Hierbei wird der Referrer geprüft, ob
selbiger leer ist, natürlich kann man
hier auch einen Wert eingeben. Wenn der
Wert nicht übereinstimmt, wird die Seite
umgeleitet zu http://localhost.

Marco

Eine andere Möglichkeit ist, wenn Du die Seite mit Frames darstellst.

Du kannst zum Beispiel einen Frame anlegen, der ständig die Navigationselemente enthält und den Du wie hier im Beispiel Navigation nennst.
Sollte jetzt jemand von Ausserhalb auf die Seite zugreifen, ohne vorher von der eigentlichen Startseite gekommen zu sein, dann baust Du folgendes Java-Script in die einzelnen Seiten mit ein.

if (top.Navigation) {}
else {document.location="…/quereinstieg.html"};

Das Script überprüft, ob jemand das Navigationsframe geladen ist, was bei einem direkten Zugriff (nicht über die Startseite) ja nicht der Fall ist. Fehlt das Navigationsframe, dann lädt der Browser automatisch die Seite Quereintieg.html.

Dort kannst Du dann darauf hinweisen, daß es sich um einen Quereinstieg handelt und der Benutzer doch bitte von der normalen index.html auf die Seite zugreifen soll. Du kannst aber auch direkt auf die index.html umleiten.

Hallo Olaf,

falls Du CGI hast, kannst Du so vorgehen:

#!/usr/bin/perl
if ($ENV{"HTTP\_REFERRER"}) {
 print "...";
} else {
 print "Content-type: text/plain\n\nDu darfst hier nicht hin!";
}
\_\_END\_\_

So kann man die Seite auch nicht überlisten, indem man eigene Frames auf die Seite verweisen läßt o. ä.

Roland