session.referer_check - grundlegende Funktionsweise

Hallo,

mich interessiert der session.referer_check welcher eine SitzungsID ungültig machen soll, wenn kein Referer vorhanden ist oder er nicht übereinstimmt. Leider klappt es garnicht.

Ist diese Schreibweise korrekt?
ini_set(„session.auto_start“, 0);
ini_set(„session.use_strict_mode“, 1);
ini_set(„session.use_only_cookies“, 0);
ini_set(„session.use_trans_sid“, 1);
ini_set(„session.use_cookies“, 0);
ini_set(„session.trans_sid_tags“, „a=href,area=href,frame=src,form=“);
// ini_set(„session.trans_sid_hosts“, $_SERVER[„HTTP_HOST“] . „,meineseite.bplaced.net“);
ini_set(„session.referer_check“, „127.0.0.1,localhost,test-pc,meineseite.bplaced.net“);
ini_set(„session.cache_expire“, 1800); // 30 Minuten
ini_set(„session.name“, „SID“);
ini_set(„session.sid_length“, 190);

Ich finde einfach nicht die entsprechende Dokumentation im Netz.
PHP.net ist an dieser Stelle leider etwas knapp:

session.referer_check string
session.referer_check enthält die Zeichenkette, auf die Sie jeden HTTP-Referer überprüfen wollen. Wenn der Referer vom Client gesendet und die Zeichenkette nicht gefunden wurde, wird die eingebettete Session-ID als ungültig gekennzeichnet. Grundeinstellung ist eine leere Zeichenkette.

Wie wird die Session-ID als ungültig gekennzeichnet?

Danke für Eure Hilfe!
Gruß Markus

Hi,
versuchs mal per php.ini (siehe https://wiki.bplaced.net/uebersicht-technische-informationen Abschnitt OPcache). Vermutlich ist ein Referer Check aber nicht so sinnvoll, falls du das öffentlich einsetzen willst …
Mfg :wink:

Hi,
die Einstellung scheint wirklich nicht besonders gut dokumentiert, insbesondere wann und wie die Überprüfung erfolgt. Deswegen ist es auch müßig hier zu spekulieren. Du könntest die Funktionalität aber ganz einfach selbst nachprogrammieren. Sicherheitstechnisch relevant ist das Ganze allerdings nicht.
Mfg :wink:

Danke Magier. Genau das versuche ich zu vermeiden. Das Rad wurde bereits erfunden…
Ich könnte eigene RegExp schreiben und den Inhalt von $_SERVER[‚HTTP_REFERER‘] mit $_SESSION[‚Referer‘] vergleichen. Dabei belaste ich leider unnötig den Server, weil ich die Performance niemals nachbilden kann und baue noch womöglich ungewollte Fehler ein.

Ich hoffe immer noch es gebe irgendwo eine funktionierende Anleitung hierfür.

Gruß Markus

Ja viel Sicherheit gibt der Referer nicht aber ich nehme alles was es gibt.

Ein Regexp ist dafür gar nicht notwendig, laut der Doc handelt es sich nur um ein substring. Aus diesem Grund dürfte es auch nicht möglich sein, mehrere URLs/Ausdrücke anzugeben, so wie in deinem ersten Beispiel.

Ich kann es kaum gleuben, es gibt so viele PHP-Entwickler und keiner hat eine Idee…