Anmeldung mit globaler Gültigkeit in PHP
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
annahme
anwenden
aufnehmen
aufruf
benutzer
empfehlen
enormes sicherheitsrisiko
http
jemand
konzept
manual
moment
parameter
post
server
session
speichern
suche
theorie
url
-
Ich kenne mich kaum mit PHP aus und suche eine Möglichkeit einen Benutzer auf alles Seiten angemeldet zu lassen, das habe ich im Moment durch Cookies realisiert, was aber natürlich ein enormes Sicherheitsrisiko darstellt und weniger als optimal ist, dennoch überaus praktisch, kennt also jemand eine Möglichkeit eine Variable global, aber ausschließlich von PHP abzurufen?
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
anti-nuernberg schrieb:
Ich kenne mich kaum mit PHP aus und suche eine Möglichkeit einen Benutzer auf alles Seiten angemeldet zu lassen, das habe ich im Moment durch Cookies realisiert, was aber natürlich ein enormes Sicherheitsrisiko darstellt und weniger als optimal ist, dennoch überaus praktisch, kennt also jemand eine Möglichkeit eine Variable global, aber ausschließlich von PHP abzurufen?
Da würde ich php session empfehlen: http://www.formget.com/login-form-in-php/ -
Also prinzipiell geht es nicht ohne Cookies, denn auch Sessions verwenden Cookies, über die URL ist extrem unsicher, da ein Angreifer den Referer auslesen kann und sich dann einloggen kann, bei Session über Cookies muss man sich nur gegen XSRF schützen.
-
Irgtendwie muss der Client ja die Session-ID mitschleppen. Das wird üblicherweise über Cookies oder die URL gemacht.
Man könnte die Session-ID auch als POST-Parameter übertragen (dann wird sie weder auf dem Client gespeichert noch ist sie in der URL). Das geht aber nicht mit einfachen HTML-Links, sondern nur über Formulare oder mit Javascript und wird wohl deshalb nicht bei den von PHP angebotenen Sessions genutzt. Man müsste also was eigenes implementieren. -
anti-nuernberg schrieb:
Ich kenne mich kaum mit PHP aus und suche eine Möglichkeit einen Benutzer auf alles Seiten angemeldet zu lassen, das habe ich im Moment durch Cookies realisiert, was aber natürlich ein enormes Sicherheitsrisiko darstellt und weniger als optimal ist, dennoch überaus praktisch, kennt also jemand eine Möglichkeit eine Variable global, aber ausschließlich von PHP abzurufen?
Unter der Annahme, dass es um eine Client <-> Server Beziehung geht, die via HTTP abläuft.
Theorie:
Um einen Benutzer eindeutig zu identifizieren muss der Client (also der Benutzer) ein Identifikationsparameter bei jedem Aufruf an den Server senden.
Identifikationsparameter können über verschiedene Wege übertragen werden.
Praxis:
Die gebräuchlichsten Wege sind meines Erachtens nach die Übertragung per GET (also an der URL angehängt), im Body des POST Requests oder in einem Cookie.
POST dürfte rausfallen. Bleibt noch die Übertragung via GET oder Cookie.
Da GET, wie bereits angemerkt, das Problem hat, dass andere Seiten Zugang zu diesen Parametern bekommen können, bleiben noch Cookies.
Es besteht bei Cookies ebenfalls die Gefahr, dass diese durch Dritte ausgelesen werden könnten.
Folglich sollte man nur Daten in diesen speichern, die beispielsweise nach kurzer Zeit verfallen. Weiterhin kann man auch noch die IP, den User-Agent o.ä. als Sicherheitsmerkmal mit aufnehmen.
Mittlerweile gibt es da ganz gute Konzepte. Google wird dir sicherlich weiter helfen. :)
Ansonsten überlege dir ein eigenes Konzept und stell es hier zur Diskussion. -
Theoretisch kannst du natürlich frickeln mit Flashcookies (iphones sperrst du damit aus), personalisierte Etags (Haut dir evtl ein Proxy raus) oder lokalem html5 speicher (muss extra genemigt werden).
kurzum: cookies +Https und du bist save. Mal von Sicherheitslücken in der Software abgesehen. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage