Zum Inhalt springen

alternativer Übermittlungsweg für SessionID ?


Empfohlene Beiträge

hi,

frage,

ich habe eine Anwendung mit hunderten von Links (teils dynamisch, teils statisch in templates), Formularen, AJAX und und und...

Login läuft derzeit über Session-Cookies, nun möchte ich aber einen alternativen Übermittlungsweg hinzufügen, falls Cookies nicht vorhanden sind.

Der automatischen Übergabe von PHP traue ich nicht ganz, eben weil das eben nicht javascript-Aktionen mit einschließt (window.open, location.href,....)

eine idee wäre die http ($_SERVER['PHP_AUTH_USER']), die beim Login mit der SessionID besetzt wird. Aber das scheint bisher nicht zu funktionieren.

Hat da jemand erfahrung mit ? , was haltet ihr überhaupt davon ?

zweite Frage:

wie kann ich testen ob im Client-browser Cookies aktiviert sind. Die Session, ergo auch das session-Cookie, wird generell beim ersten besuch der Seite erstellt, unabhängig davon ob eingeloggt oder nicht. Macht es dann aber sinn das mit $_COOKIE zu prüfen ?

allgemein soll das jetzt keine diskusion über Sicherheit heraufbeschwören, auch wenn ich für jeden Tip dankbar bin.

Derzeit sichere ich die Session zusätzlich durch die IP des Clients ab.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Der automatischen Übergabe von PHP traue ich nicht ganz, eben weil das eben nicht javascript-Aktionen mit einschließt (window.open, location.href,....)

Das ist eine Einstellungssache. Kannst du alles in der php.ini berücksichtigen lassen.

Ansonsten kannst du mit der base-url arbeiten. In diese verpackst du einfach deine SessionId:

www.deine-doma.in/irgendein.skript/sessionid/...

Link zu diesem Kommentar
Auf anderen Seiten teilen

eine idee wäre die http ($_SERVER['PHP_AUTH_USER']), die beim Login mit der SessionID besetzt wird. Aber das scheint bisher nicht zu funktionieren.

Hat da jemand erfahrung mit ? , was haltet ihr überhaupt davon ?

zweite Frage:

wie kann ich testen ob im Client-browser Cookies aktiviert sind. Die Session, ergo auch das session-Cookie, wird generell beim ersten besuch der Seite erstellt, unabhängig davon ob eingeloggt oder nicht. Macht es dann aber sinn das mit $_COOKIE zu prüfen ?

1. Die $_SERVER['PHP_AUTH_USER'] gibt es erstmal nur beim Apache (AFAIK) und zweitens bringt es nix, wenn die selber setzt. Die wird bei jedem Seitenaufruf neu geschrieben und somit auch überschrieben. In $_SERVER['PHP_AUTH_USER'] steht der User drin, der vom Client an den Server übermittelt wurde und ich glaube auch nur dann, wenn die Authentifizierung geklappt hat. Und was der Client dem Server sendet kannst du nicht beeinflussen.

2. Nein, das macht keinen Sinn. In einem Cookie werden Daten gespeichert, die der Client bei jedem Aufruf an den Server mitschickt. Diese Daten sind nach URL und Pfad zugeordnet. Bei jedem Aufruf werden dann nur die dieser URL und diesem Pfad zugeordneten, vorhandenen(!) Cookies mitgeschickt.

Bei allerersten Aufruf kann der Client also noch gar keine Cookies mitschicken. $_COOKIE wäre also leer.

Cookies sind aber die einzige Methode Daten dauerhaft beim Client zu speichern. die Alternative besteht darin, die Session_Id der URL anzuhängen als Parameter. Das kann von PHP automatisch gemacht werden, oder du machst es selbst.

Allerdings fließt die Session_Id dann auch in Bookmarks ein, oder in Links, die man jemand weitergibt oder in ein Forum stellt etc.

(Ok, über die IP würde das dann "abgefangen").

Sonst gibt es keine Möglichkeiten um so etwas zu erreichen. Außer du machst das ganz allgemein, indem du eine IP intern einer Session zuweist, aber in Zeiten dynamischer IPs sollte man daran nicht wirklich denken ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...