Zur Boardunity Forenstartseite
  #1  
Alt 26.11.2003, 22:13
Benutzerbild von Björn
Boardunity Team
 
Registriert seit: 10.2003
Ort: Rhode
Beiträge: 1.150

sessionsystem


hiho
irgendwo meinte wer das das session system von php nicht so sicher sei..
was is da dran und was gibt es für alternativen???
mfg
__________________
Björn C. Klein
Welt-Held!
PunkRockNews.de
  #2  
Alt 27.11.2003, 00:34
Benutzerbild von DaddyCool
Platzanweiser
 
Registriert seit: 10.2003
Ort: Niedersachsen
Beiträge: 306
Das Problem mit dem PHP Sessions ist, das eine Übernahme durch einenf remden sehr einfach möglich ist.

Kenn ich den Namen der Session und eine Sessionid dann kann ich die Session ganz einfach übernehmen, da nicht kontrolliert wird ob ich der eigentliche Inhaber der Session bin.

So könnte man z.B. Accounts in Foren übernehmen usw.

__________________
Fabian Martin
Fabian Martin

Blog | Twitter | XING
  #3  
Alt 27.11.2003, 14:15
Benutzerbild von Björn
Boardunity Team
 
Registriert seit: 10.2003
Ort: Rhode
Beiträge: 1.150
jo das ist mir bekannt
ich umgeh das indem ich in der session paar benutzer variabeln speicher (unter anderem ip)
wenn das nicht übereinstimmt, wird halt eine neue variabel gesetzt

gibt es noch andere möglichkeiten?
mfg

__________________
Björn C. Klein
Welt-Held!
PunkRockNews.de
  #4  
Alt 27.11.2003, 16:30
Benutzerbild von DaddyCool
Platzanweiser
 
Registriert seit: 10.2003
Ort: Niedersachsen
Beiträge: 306
Zitat:
Original geschrieben von ciruZ
Der Session Teil von PHP ist besonders in alten PHP Versionen so verbuggt, das man ihn absolut nicht verwenden sollte.
Man kann z.B. selber sogar festlegen, wie die sesion heißt, also z.B. abc. Also sicher kann man das echt nicht nennen. Alternativen? Selber eins schreiben!
Mooooment, nur weil ich bestimmen kann wie die Session heissen soll ist sie verbuggt??

Das man Sessions ganz einfach übernehmen kann ist ja bekannt und gewollt.

Nenn mal bitte ein paar Bugs.

__________________
Fabian Martin
Fabian Martin

Blog | Twitter | XING
  #5  
Alt 27.11.2003, 17:21
Benutzerbild von Björn
Boardunity Team
 
Registriert seit: 10.2003
Ort: Rhode
Beiträge: 1.150
naja ich find das mit session bennen ganz nett PHPSESSID oder was daran gehängt wird recht unstylisch

mfg

__________________
Björn C. Klein
Welt-Held!
PunkRockNews.de
  #6  
Alt 27.11.2003, 17:36
Boardunity Team
 
Registriert seit: 12.2001
Beiträge: 1.565
Zitat:
Original geschrieben von trashar
naja ich find das mit session bennen ganz nett PHPSESSID oder was daran gehängt wird recht unstylisch

mfg
Wie bitte?

  #7  
Alt 27.11.2003, 20:01
Benutzerbild von DaddyCool
Platzanweiser
 
Registriert seit: 10.2003
Ort: Niedersachsen
Beiträge: 306
Zitat:
Original geschrieben von ciruZ
Du verstehst mich falsch.
Du kannst ganz einfach sid=abc machen, das klappt auch noch.
Du rufst eine Seite auf, und übergibst eine SID.
PHP überprüft ob es diese gibt, wenn ja wird sie geladen, wenn nicht wird sie halt angelegt.

Wo ist da das Problem?? Was hättest du davon wenn PHP ne neue generieren würde?? Gut, die Session ID ist ein wenig kurz, aber sie ist gültig.

Ich seh da nicht wirklich ein Problem drin.

__________________
Fabian Martin
Fabian Martin

Blog | Twitter | XING
  #8  
Alt 27.11.2003, 21:06
Benutzerbild von Björn
Boardunity Team
 
Registriert seit: 10.2003
Ort: Rhode
Beiträge: 1.150
Zitat:
Original geschrieben von Boardster
Wie bitte?
ist schon ok.. eigentlich total sinnlos

zum thema
die session ist doch sowieso nur eine bestimmte zeit gültig
und wer sich selber eine mit sid=abc anhängt tja da kann man nichs machen.. evtl per script die länge oder so überprüfen!
ein normaler hash besteht doch aus einem md5() hash oder irre ich mich da?

also ich speicher wie gesagt paar sachen in der session und check die bei jeden seiten aufruf ohne db!
sollte dies nicht passen wird der user sofort weitergeleitet und ihm wird eine neue session id erstellt
sollte doch relativ sicher sein
weil sonst hät ja jedes board ne potentielle sicherheitslücke
mfg

__________________
Björn C. Klein
Welt-Held!
PunkRockNews.de
  #9  
Alt 28.11.2003, 00:36
Benutzerbild von DaddyCool
Platzanweiser
 
Registriert seit: 10.2003
Ort: Niedersachsen
Beiträge: 306
Zitat:
Original geschrieben von ciruZ
So lange es nur wenig User sind, ist sowas noch akzeptabel - aber bei was großem?
Was soll dann sein??

Zitat:
Oder dann die ganzen Security Bugs die PHP in den alten Versionen in Sachen Session System hatte.
Du glaubst doch wohl nicht ernsthaft das eine Funktion die von einer Person erdacht und getestet wurde sicherer ist als eine die von Millionen von Entwicklern täglich eingesetzt wird.

Je weniger Personen eine Funktion testen desto größer ist die Wahrscheinlichkeit das sie fehlerhaft ist.

__________________
Fabian Martin
Fabian Martin

Blog | Twitter | XING
  #10  
Alt 28.11.2003, 00:38
Benutzerbild von DaddyCool
Platzanweiser
 
Registriert seit: 10.2003
Ort: Niedersachsen
Beiträge: 306
Zitat:
Original geschrieben von trashar
ein normaler hash besteht doch aus einem md5() hash oder irre ich mich da?
Obs ein md5() Hash ist kann ich nicht sagen, das einzige was fest steht, eine SID die von PHP erzeugt wird ist normalerweise 32 Zeichen lang (genauso wie eine md5() hash)

__________________
Fabian Martin
Fabian Martin

Blog | Twitter | XING
  #11  
Alt 28.11.2003, 17:11
Benutzerbild von TRS
TRS TRS ist offline
Mitglied
 
Registriert seit: 02.2003
Ort: Berlin
Beiträge: 990
Vielleicht könnten wir hier mal einige Fakten zusammentragen, denn hier wird wieder ohne stichhaltige Beweise diskutiert und bei solch einem Thema sollte man schon seine Behauptungen hinterlegen können.

Ich kenn mich jetzt nicht mit Sessions so gut aus, aber ich trage mein Wissen zusammen:

Der Sessionname kann frei gewählt werden, dabei spielt es absolut keine Rolle, ob der Name PHPSESSID ( Standart )oder s oder nasenhaare ist.

Bei der eigentlichen Session handelt sich um eine 32stellige Kombination von Ziffern und Zahlen in einer zufälligen Reihenfolge. Sie wird immer nur einmal zugewiesen, so dass es auf natürlichem Wege keine zwei Benutzer mit der gleichen Session gibt.

Diese Nummernbuchstabenkombination, welche entscheident ist, kann man auf verschieden Arten herausfinden. Damit wäre es möglich auf die Daten, welche in einer Session gespeichert wären zuzugreifen.

Zwischen den einzelnen Seiten wird die Session ( SID ) entweder per Cookie, Post oder Get übertragen.

Die Daten einer Session werden im PHP eigenen temporären Ordner gespeichert, oder in einem beliebigen anderen Pfad auf dem Server, dedingt durch die Einstellungen. Auf diesen kann man in der Regel nicht zugreifen.


Soweit mein Wissen zum Thema, nun einige Möglichkeiten zum Thema Sicherheit, welche mir spontan einfallen:

IP Adresse: Ermitteln, in der Session speichern und bei jedem Seitenaufruf prüfen.

Session Lifetime: Je nach Seiteinhalt sollte in relativ geringer Wert gewählt werden, so dass die Session nicht Stunden später nach ansprechbar ist. Alternativ kann man auch die Zeit speichern, wenn die Session zum ersten initialisiert wird und später einen Vergleich mit der aktuellen Zeit durchführen und je nach Ausgang die Session neu starten.

Sessionübertragung: Nur das Speichern der Session in einem Cookie erlauben. So kann legentlich der entsprechende Computer die Session nutzen. Natürlich ist dies eine Gefahr für bei Mehrpersonensystemen.

SSL: Hierbei handelt es sich ja bereits um eine Sicherheitsmaßnahme, habe jedoch auch gelesen, dass dies im Bezug auf Sessions nützlich sein soll.

Benutzerdaten: Man kann natürlich eine ganze Reihe von Daten des Nutzers ( Browser, OS, IP etc. ) speichern und bei jedem Abruf prüfen.


Über Sinn und Unsinn kann man sich streiten - Es ist ein Resultat einiger Minuten des Denkens, dies ist jedenfalls mein Betrag zu diesem Thema

  #12  
Alt 28.11.2003, 18:55
Benutzerbild von Creator
Mitglied
 
Registriert seit: 11.2002
Ort: NRW / Düren
Beiträge: 110
mit einiges inis und co kann mann das session system sehrgut benutzen!

man sollte es allerdings mit einem ip check verbinden.

ich benutzen derweil folgende inisets:
PHP-Code:
    ini_set "session.save_handler""user" );
    
ini_set "session.serialize_handler"$session_serialize_handler );
    
ini_set "session.gc_probability"$session_gc_probability );
    
ini_set "session.gc_maxlifetime"$session_gc_maxlifetime );
    
ini_set "session.referer_check"$session_referer_check );
    
ini_set "session.entropy_file"$session_entropy_file);
    
ini_set "session.entropy_length"$session_entropy_length );
    
ini_set "session.use_cookies"$session_use_cookies );
    
ini_set "session.use_trans_sid"$session_use_trans_sid );
    
ini_set "session.url_rewriter.tags "$session_url_rewriter_tags );
ini_set "session.use_only_cookies"$session_use_only_cookies );
    if(
version_compare(phpversion(), "4.2.0"">=")) session_cache_expire ($session_cache_expire);
    
session_set_cookie_params $session_cookie_lifetime,$session_cookie_path,$session_cookie_domain,$session_cookie_secure);
    
session_cache_limiter($session_cache_limiter); 

  #13  
Alt 28.11.2003, 19:04
Benutzerbild von Creator
Mitglied
 
Registriert seit: 11.2002
Ort: NRW / Düren
Beiträge: 110
mhm... dann hätte ich ein problem.
habt ihr ne andere lösung?

  #14  
Alt 28.11.2003, 19:07
Benutzerbild von DaddyCool
Platzanweiser
 
Registriert seit: 10.2003
Ort: Niedersachsen
Beiträge: 306
Zitat:
Original geschrieben von ciruZ
Und wenn du MySQL Zugriff hast interessieren dich bestimmt nicht die Sessions ...
Wenn du an die Dateien rankommst werden dich Sessions auch kaum interssieren, behaupte ich jetzt mal.

Reimer hat schon recht, lass uns uns gegenseitig mit Fakten bewerfen.

Fakt 1: Man kann selbst bestimmen wo die Sessions gespeichert werden. Den Pfad kann man mittels session_save_path() bestimmen.

Fakt 2: Wie Reimer schon gesagt hat muss man sich selbst darum kümmern und überprüfen ob der User zur Session gehört oder nicht. Jedoch ist dies bei einem eigenen System nicht anders.

Fakt 3: ich bin mir jetzt nicht ganz sicher, aber Reimer weiß dies ggf., aber unter Confixx (welches ja sehr beliebt ist bei Hostern) wird für jeden Benutzer ein extra tmp Verzeichnis angelegt. In diesem sollten auch die Session Daten landen. Andere Nutzer haben auf dieses Verzeichnis normalerweise kein Zugriff.

Nunmal zu dem selbst bestimmen der SID: Wer Sessions ernsthaft einsetzt überprüft normalerweise ob en User zu der Session gehört oder nicht. Wenn nicht kriegt er halt ne neue ID, ich seh da jetzt wirklich kein Problem drin.

Zitat:
Original geschrieben von Creator
mhm... dann hätte ich ein problem.
habt ihr ne andere lösung?
Du kannst einen Teil der Daten in der Session selbst speichern und dann überprüfen

__________________
Fabian Martin
Fabian Martin

Blog | Twitter | XING
  #15  
Alt 28.11.2003, 19:18
Benutzerbild von Björn
Boardunity Team
 
Registriert seit: 10.2003
Ort: Rhode
Beiträge: 1.150
Zitat:
Original geschrieben von DaddyCool
Du kannst einen Teil der Daten in der Session selbst speichern und dann überprüfen

was ja wohl letztendlich die beste möglichkeit scheint.
ich speicher mir folgendes ab:
md5($_ENV["HTTP_USER_AGENT"].$_ENV["HTTP_HOST"].$_ENV["REMOTE_ADDR"])

mfg

__________________
Björn C. Klein
Welt-Held!
PunkRockNews.de
  #16  
Alt 28.11.2003, 19:40
Benutzerbild von Björn
Boardunity Team
 
Registriert seit: 10.2003
Ort: Rhode
Beiträge: 1.150
wie soll das denn bitte aussehen und wie umgehst du die sicherheitslücken die du ja im session system von php siehst?

__________________
Björn C. Klein
Welt-Held!
PunkRockNews.de
  #17  
Alt 29.11.2003, 12:51
Benutzerbild von Björn
Boardunity Team
 
Registriert seit: 10.2003
Ort: Rhode
Beiträge: 1.150
haha witzbold

nur wie willst du die session eindeutig zuordnen?????
mfg

__________________
Björn C. Klein
Welt-Held!
PunkRockNews.de
  #18  
Alt 29.11.2003, 14:55
Benutzerbild von Frederic Schneider
WoltLab Holzmichl
 
Registriert seit: 07.2003
Ort: Eschborn
Beiträge: 1.282
ciruZ anstatt so rumzumachen sag ihm entweder jetzt wie du es genau machst oder lass es hier im Thema etwas zu schreiben.

Ich meine das jetzt nicht böse, aber es nervt irgendwie .

Zum Thema:
Ich habe keinerlei Probleme mit den PHP Sessions, mit ein paar Modifikationen passt das schon .

__________________
Frederic Schneider
WoltLab Team / WoltLab Wiki / GamePorts / Frederic Schneider / neuer-patriotismus.de
  #19  
Alt 29.11.2003, 15:49
Benutzerbild von Björn
Boardunity Team
 
Registriert seit: 10.2003
Ort: Rhode
Beiträge: 1.150
nö sagt ja keiner
nur ich seh keinen eindeutigen weg einen benutzer zu identifizieren!
ip adresse is essig => proxys etc
cookie auch da einige leute keine akzeptieren

zu dem pasten: wir könnten uns irgendwann dein forum saugen und abschaun
aber ich interessiere mich nicht für den code sondern für eine lösung dieses von dir ja so ziemlich groß dargestellten problem das php session system zu nutzen!
schliesslich will ich meinen benutzern eine gewisse sicherheit bieten!

mfg

__________________
Björn C. Klein
Welt-Held!
PunkRockNews.de
  #20  
Alt 29.11.2003, 16:22
Benutzerbild von TRS
TRS TRS ist offline
Mitglied
 
Registriert seit: 02.2003
Ort: Berlin
Beiträge: 990
Zitat:
Original geschrieben von trashar
nö sagt ja keiner
nur ich seh keinen eindeutigen weg einen benutzer zu identifizieren!
ip adresse is essig => proxys etc
cookie auch da einige leute keine akzeptieren
Nun ja, Sicherheit und Benutzerfreundlichkeit lassen sich nicht vereinbaren. Man muss immer irgendwie ein Mittelmaß finden. Wenn der Nutzer keine Cookies erlaubt, ist die Sicherheit nicht mehr gewährleistet und der Nutzer wird ausgeschlossen. Leider.

Ansonsten würde ich mich auch freuen, wie du, CiruZ, das ganze gelöst hast. Anscheinend hast du ja eine gute Lösung gefunden und kannst ja dann mal beschreiben, wie du das umgesetzt hast.

  #21  
Alt 29.11.2003, 16:47
Benutzerbild von DaddyCool
Platzanweiser
 
Registriert seit: 10.2003
Ort: Niedersachsen
Beiträge: 306
Super, du hast grad beschrieben wie jedes Session System in Foren funktioniert.

Was aber alle wissen wollen, wie gehst du auf Nummer sicher das einem Benutzer auch die angesprochene Session gehört??

__________________
Fabian Martin
Fabian Martin

Blog | Twitter | XING
  #22  
Alt 29.11.2003, 18:12
Benutzerbild von TRS
TRS TRS ist offline
Mitglied
 
Registriert seit: 02.2003
Ort: Berlin
Beiträge: 990
Und kannst du jetzt erklren, wo der Vorteil von deiner Variante zu dem Sessionsystem von PHP ist, denn davon hast du kein Wort gesagt.

  #23  
Alt 29.11.2003, 18:15
Benutzerbild von DaddyCool
Platzanweiser
 
Registriert seit: 10.2003
Ort: Niedersachsen
Beiträge: 306
Mich würde zusätzlich noch interessieren was für Daten bei dir in der Session landen und wie du es schaffen willst das jeder Benutzer deines Systems keine URLs weitergibt in denen die SID steht.

__________________
Fabian Martin
Fabian Martin

Blog | Twitter | XING
  #24  
Alt 30.11.2003, 03:36
Benutzerbild von Björn
Boardunity Team
 
Registriert seit: 10.2003
Ort: Rhode
Beiträge: 1.150
ich muss reimer ma zustimmen...

mfg

btw:

http://forum.powerteq.net/forum.php?...7d123405a74444 <-- wird ja doch mitgegeben o_O
mfg

__________________
Björn C. Klein
Welt-Held!
PunkRockNews.de
  #25  
Alt 30.11.2003, 12:42
Benutzerbild von Björn
Boardunity Team
 
Registriert seit: 10.2003
Ort: Rhode
Beiträge: 1.150
also bei mir wird automatisch überprüft ob die session per cookie gespeichert wird oder nicht und dementsprechend die session angehängt oder nicht..
mnfg

__________________
Björn C. Klein
Welt-Held!
PunkRockNews.de
Antwort


Stichworte
-

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
Gehe zu






1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24