SESSION Cookies sicher?
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
absender
adresse
aktiven session
bekommen
bereich
besitz
besuchen
besucher
code
datei
datum
freund
greifen
kenntnis
kennwort
login
minute
nachricht
session
url
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Sobald Du eine Session startest, wird eine Identifikationsnummer (SESSION-ID) erzeugt, damit der Server die Kommunikation mit dem Benutzer eindeutig zuordnen kann. Und nur diese ID wird auf dem Client-Rechner als Cookie abgespeichert.
Das sieht dann so aus (Cookie-Domain: christian1603.lima-city.de, Variable: PHPSESSID, Wert: xyz1234567 etc)
Wenn Du das Login in einer Session-Variablen (also z.B. $_SESSION[user]) abspeicherst, werden diese Daten nur auf den Servern von Lima als temporäre Datei mit gleichem Namen gespeichert.
Wenn Dein Skript über session_start(); die SESSION aktiviert, liest es beim User die entsprechende ID aus dem Cookie aus und weiß dann, welche Datei auf den Lima-Servern geöffnet werden muss um wieder an die Daten ranzukommen. Diese Daten verfallen automatisch nach einiger Zeit (ca. 30 Minuten nach der letzten Aktivität).
Wenn Du also die SESSION-ID nur als Cookie abspeicherst, ist meines Erachtens kein Sicherheitsrisiko vorhanden. Das wird auch von fast allen professionellen Anbietern so gemacht. Auch das hier installierte PHPmyAdmin speichert solche SESSION-IDs auch als Cookie. Wenn man dieses löscht, ist man automatisch wieder ausgeloggt.
Aber Vorsicht:
Es gibt auch die Möglichkeit, dass die Session IDs an die URL angehängt wird. Dann kann jeder, der in Besitz dieser ID kommt auf die Daten zu greifen. Versendet also ein Besucher während einer aktiven Session einen Link per e-mail, der die Session ID beinhaltet, so ist quasi der E-Mail Empfänger ebenfalls unter dem Usernamen des Absenders eingeloggt.
Abhilfe schafft hier das Abfangen unterschiedlicher IP-Adressen oder folgende Einstellung:
session.use_cookies = On session.use_trans_sid = 0
Dann wird unterbunden, dass die SESSION ID an URLs angehängt wird (ist bei Lima aber aktiviert) -
rnitsche schrieb:
Aber Vorsicht:
Es gibt auch die Möglichkeit, dass die Session IDs an die URL angehängt wird. Dann kann jeder, der in Besitz dieser ID kommt auf die Daten zu greifen. Versendet also ein Besucher während einer aktiven Session einen Link per e-mail, der die Session ID beinhaltet, so ist quasi der E-Mail Empfänger ebenfalls unter dem Usernamen des Absenders eingeloggt.
Danks schonmal für die Gute Antwort.
Noch ne frage:
Wenn ich mich als User anmelde und einen Anderen User eine Nachricht schicke bekommt der andere User gleich noch ne E-Mal als benachrichtigung:
Hallo "Nickname",
Duu hast eine Neue Nachricht
meinedomain.de <-- Link
da besteht keine Gefahr da der Absender also ich die E.Mail nicht fälschen kann. <--Richtig verstanden?
Beitrag zuletzt geändert: 5.1.2010 12:41:46 von christian1603 -
Wenn du nur eine E-Mail verschickst, in der z.B.
<a href='meinedomain.de'>meinedomain.de</a>
drinsteht, dann wird niemals die Session übergeben. Solltest Du aber die SESSION ID in der URL mit übergeben, damit Du ohne Cookies auskommst, dann steht in der Adresszeile des Browser immer so eine Adresse:
http://meinedomain.de?PHPSESSID=1233lkjl12lkj12hl1usw.
Wenn Du jetzt einen Besucher hast, der mal eben seine Freunde auf Deine Seite aufmerksam machen möchte, dann könnte es sein, dass er diese Adresse einfach aus der Adresszeile des Browsers kopiert und in die E-Mail einfügt. Somit würden die Freunde Kenntnis von der SESSION ID bekommen und könnten dann - sofern sie die Seite besuchen, während die Session noch aktiv ist - alle Daten sehen, die auch der Ursprungsbesucher sieht.
Hast Du z.B. einen geschützten Bereich, den Besucher A mit seinem Kennwort sehen darf, könnte es sein, dass plötzlich seine Freunde in diesen Bereich kommen und sogar als Besucher A eingeloggt sind, da sie ja Kenntnis von der Session ID haben. Das funktioniert aber nur solange wie die Session gültig ist - also ca. 30 Minuten nach letzer Aktivität. Besucher A und seine Freunde müssten also nahezu gleichzeitig auf Deiner Seite aktiv sein.
-
rnitsche schrieb: Wenn du nur eine E-Mail verschickst, in der z.B.
<a href='meinedomain.de'>meinedomain.de</a>
drinsteht, dann wird niemals die Session übergeben. Solltest Du aber die SESSION ID in der URL mit übergeben, damit Du ohne Cookies auskommst, dann steht in der Adresszeile des Browser immer so eine Adresse:
http://meinedomain.de?PHPSESSID=1233lkjl12lkj12hl1usw.
Wenn Du jetzt einen Besucher hast, der mal eben seine Freunde auf Deine Seite aufmerksam machen möchte, dann könnte es sein, dass er diese Adresse einfach aus der Adresszeile des Browsers kopiert und in die E-Mail einfügt. Somit würden die Freunde Kenntnis von der SESSION ID bekommen und könnten dann - sofern sie die Seite besuchen, während die Session noch aktiv ist - alle Daten sehen, die auch der Ursprungsbesucher sieht.
Hast Du z.B. einen geschützten Bereich, den Besucher A mit seinem Kennwort sehen darf, könnte es sein, dass plötzlich seine Freunde in diesen Bereich kommen und sogar als Besucher A eingeloggt sind, da sie ja Kenntnis von der Session ID haben. Das funktioniert aber nur solange wie die Session gültig ist - also ca. 30 Minuten nach letzer Aktivität. Besucher A und seine Freunde müssten also nahezu gleichzeitig auf Deiner Seite aktiv sein.
ACHSO Danke!!!
Dann bin ich ja beruhigt! -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage