Ich mchte auf meiner HP einige Seiten erstellen auf die Nur bestimmt Personen zugreifen können. Dies mache ich mit einer einfachen Passwortabfrage.
Nun möchte ich aber, das die so geschützten Seiten nicht direkt angewählt werden können, sondern das der Zugriff nur über die Loginseite möglich ist.
Also ein Script das prüft von welcher seite jemand gekommen ist. Wenn es die Falsche Seite seite ist ,dann soll er auf die Loginseite umgeleitet werden.
Ich weiß das dies keine Sichere Methode ist, aber auf diesen Seiten gibt es auch nichts besonders, was einen sehr strengen Schutz braucht.
Mit geht es nur darum das die URL dieser Seiten nicht einfach an andere Weitergeben wird. OK wenn die Java abschalten …
Schreib ein Script das die Umgebungsvariablen ausließt, dort steht von welcher Seite der User kommt, wenn es die falsche Seite ist lenk Ihn auf die Loginseite um.
Hier ein Beispiel zum Auslesen der Umgebungsvariablen in Perl. #hier nach ist Kommentar
sub CGIDatenlesen # Name des Unterprogramms
{
local $cgidaten;
if ( $ENV{REQUEST_METHOD} eq „POST“) #wenn die Ungebungsvariable REQUEST_METHOD DEN Inhalt POST hat,
{
read( STDIN , $cgidaten , $ENV{‚CONTENT_LENGTH‘}); #lese von STDIN in $cgidaten so viele Byte wie in CONTENT_LENGHT gespeichert sind.
}
else #ansonsten
{
$cgidaten = $ENV{‚QUERY_STRING‘}; #werden die Daten aus der Umgebungsvariable QUERY_STRING gelesen.
}
return $cgidaten;
}
nach dem Auslesen mußt Du die Daten aufbereiten
sub CGIDatenaufbereiter
{
local ($cgidatenskalar, $name, $daten);
local @cgidatenliste;
local %cgidatenhash;
if ( $_[0])
{
$cgidatenskalar = $_[0];
}
else
{
print STDERR „Es wurden keine Daten an den CGIDatenaufbereiter uebergeben\n“;
} @cgidatenliste = split(/[&;]/ , $cgidatenskalar);
foreach $listeneintrag (@cgidatenliste)
{
$listeneintrag =~ s/+/ /go;
($name, $daten) = split( /=/ , $listeneintrag);
$name =~s/%(…)/pack(„c“,hex($1))/ge;
$daten =~s/%(…)/pack(„c“,hex($1))/ge;
$cgidatenhash{$name} = $daten;
in %cgidatenhash; stehen jetzt alle übergebenen Daten.
viel Erfolg
Jörg
}
return %cgidatenhash;
}
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]