• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Seiten-Zugriffsüberprüfung (Referer/Whitelist)

Karill Endusa

Neues Mitglied
Hallöle liebe html.de Com ich bin gestern beim Coden auf ein kleines Problem gestossen :( Ich habe eine Seite (PHP) auf welche nur von bestimmten anderen Seiten (whitelisted) zugegriffen werden soll. Ob eine Seite gültig ist überprüfe ich mit if(in_array(...)), klar soweit denk ich mal An sich funktionieren alle Seiten die in dem Array stehen, bis auf eine (und das is verdammt nochmal die Wichtigste xD): Die Seite selbst.... ?! Zum Whitelist-Array füge ich einfach nur $_SERVER["PHP_SELF"] hinzu, an sich doch logisch oder? aber warum meint er dann ich würde nicht von einer Whitelisted-Page kommen wenn ich über einen Link auf der Seite welcher ebenfalls auf $_SERVER["PHP_SELF"] verweist wieder auf die Seite komme, ich verstehs net :( Um herauszufinden, von welcher Seite der User kommt, nutze ich $_SERVER["HTTP_REFERER"] An sich müsste doch, wenn ich über einen Link auf der Seite selbst wieder auf die Seite kommen, in beiden Variablen das gleiche stehen? Eine Prüfung auf Ungleichheit aber ergibt "1", also TRUE Lg, Karill //EDIT: owww... wasn mit euren Zeilenumbrüchen kaputt? o_O
 
Der Dateiname des aktuell ausgeführten Skripts, relativ zum Document Root. Beispielsweise enthält $_SERVER['PHP_SELF'] in einem Skript, das über die Adresse IANA — Example domains aufgerufen wird, den Wert /test.php/foo.bar/. Die Konstante __FILE__ enthält den vollständigen Pfad und Dateinamen der aktuellen (z.B. via include eingebundenen) Datei. Läuft PHP als Kommandozeilenprogramm, enthält diese Variable seit PHP 4.3.0 den Namen des Skripts. Davor war die Variable nicht verfügbar.

Anstatt PHP_SELF wäre wohl eher HTTP_HOST das richtige - wobei ich nicht sicher bin, was HTTP_REFERER beinhaltet - möglicherweise nicht nur den Rechnernamen, sondern auch das Protokoll - versuch es einmal ohne, und wenns nicht klappt, dann halt mit Protokoll:

PHP:
$deineSeite = 'http://' . $_SERVER['HTTP_HOST'];
 
ui gut zu wissen darauf hab ich bei PHP_SELF gar net geachtet o_O ich werd heute abend mal alle 3 variablen debuggen (bin aktuell noch auf Arbeit) und melde mich dann nochmal ob dein Vorschlag mit HTTP_HOST geholfen hat Lg, Karill Ok, das hat schonma etwas geholfen, gibt aber wirklich nur den Host... ich machs jetz über "http://".$_SERVER["HTTP_HOST"].$_SERVER["PHP_SELF"] das is perfekt :)
 
Zuletzt bearbeitet:
Zurück
Oben