Hallo Richie,
Ich hab versucht eine seite durch den HTTP_REFERER zu schützen, dieser, so hab ich gehört enthält die adresse des formulars mit dem submit botton...
Da diese Angabe vom Client übertragen wird, kann da auch was komplett anderes oder gar nichts drin stehen. Oft werden auf diese Weise z.B. eigene Webseiten »beworben«, such mal nach »Referrer Spam«. Du kannst dich also nicht darauf verlassen.
Hat irgendwer von euch eine idee woran das liegen könnt oder eine besseren Vorschlag wie ich eine Datei schützen kann so dass man nicht mit der direkten Adresse darauf zugreifen kann sondern nur durch den login...
Da ich durch dein folgendes Code-Beispiel vermute, dass du nicht HTML sondern PHP meinst, rate ich dir mal unter http://de3.php.net/manual/en/ref.session.php zu gucken. Das dürfte die Lösung für dein Problem sein.
PS:<?
if(!eregi("http://itchy.uttx.net/login.php",$HTTP_REFERER))
header("Location:http://itchy.uttx.net/login.php")
?>
Noch drei Anmerkungen dazu:
-
Verschichte auf die Kurzform der PHP-Tags wie <? ... ?>, das ist schlechter Stil. Verwende lieber die Komplettform <?php ... ?>.
-
Es ist hier überhaupt nicht nötig mit regulären Ausdrücken zu arbeiten, strcasecmp() reicht hier völlig aus.
-
$HTTP_REFERER sollte nicht mehr verwendet werden bzw. ist überhaupt nicht mehr verfügbar, falls in der Konfiguration register_globals auf Off gesetzt ist. Seit PHP 4.2.0 ist das so auch die Standardeinstellung. Der Grund dafür lag darin, dass es sonst bei schlecht programmierten Scripten unter Umständen möglich war bösartigen Code einzuschleusen. (Mehr dazu: http://www.php.net/manual/en/security.globals.php)
Stattdessen solltest du es so wie in http://www.php.net/manual/en/language.variables.predefined.php beschrieben machen. In deinem Fall müsstest du also $HTTP_REFERER durch $_SERVER['HTTP_REFERER'] ersetzen.
Hier könnte dein Problem also auch begründet liegen. Um die Einstellung für register_globals auf deinem System herauszufinden, kannst du eine Date anlegen, die nur <?php phpinfo(); ?> enthält. Beim Aufruf dieser Datei werden dir dann Informationen über das System deines Servers angezeigt, u.a. auch die Konfigurationseinstellungen.
Aber auch wenn du damit das Referrer-Problem scheinbar gelöst hast, ist es nicht die richtige Lösung für dein Problem, da es nicht sicher ist. Verwende also deshalb Sessions.
Schöne Grüße,
Johannes
ie:% fl:( br:< va:) ls:[ fo:) rl:) n4:& ss:| de:] js:| ch:} sh:) mo:} zu:)