![]() |
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 |
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. |
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 |
Zitat:
Das man Sessions ganz einfach übernehmen kann ist ja bekannt und gewollt. Nenn mal bitte ein paar Bugs. |
naja ich find das mit session bennen ganz nett PHPSESSID oder was daran gehängt wird recht unstylisch mfg |
Zitat:
|
Zitat:
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. |
Zitat:
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 |
Zitat:
Zitat:
Je weniger Personen eine Funktion testen desto größer ist die Wahrscheinlichkeit das sie fehlerhaft ist. |
Zitat:
|
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 |
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: |
mhm... dann hätte ich ein problem. habt ihr ne andere lösung? |
Zitat:
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:
|
Zitat:
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 |
wie soll das denn bitte aussehen und wie umgehst du die sicherheitslücken die du ja im session system von php siehst? |
haha witzbold nur wie willst du die session eindeutig zuordnen????? mfg |
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 :D. Zum Thema: Ich habe keinerlei Probleme mit den PHP Sessions, mit ein paar Modifikationen passt das schon :D. |
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 :rolleyes: 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 |
Zitat:
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. |
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?? |
Und kannst du jetzt erklren, wo der Vorteil von deiner Variante zu dem Sessionsystem von PHP ist, denn davon hast du kein Wort gesagt. |
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. |
ich muss reimer ma zustimmen... mfg btw: http://forum.powerteq.net/forum.php?...7d123405a74444 <-- wird ja doch mitgegeben o_O mfg |
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 |
naja php macht das ja automatisch mit der session über cookie oder halt link... mfg |
Kannst du doch selber beeinflussen, wie das übergeben wird. Ist ja nicht so die große Kunst. |
@ciruZ Wenn ich mir die Beiträge so durchlese ist im pbb ein Session System welches genauso arbeitet wie das von PHP. Warum also ein eigenes schreiben?? Das wird mir immer noch nicht klar. Die Systeme die ich kenne und ein eigenes Session System integriert haben, nutzen es um die höchstmögliche Sicherheit zu gewährleisten und überprüfen Daten wie IP, Browser usw., direkt bei der Abfrage, aber soetwas gibts ja scheinbar bei dir nicht. Du hattest angesprochen das es mit Proxys Probleme geben kann. Dazu möchte ich nur anmerken das die meisten Proxy Server die korrekte IP übergeben, und zwar in der Variable $_SERVER['HTTP_X_FORWARDED_FOR'] und ich behaupte jetzt einfach mal das die meisten Benutzer die Proxys ihres Hosters nutzen und wenn jemand schon nen anonymen Proxy nutzen muss, ist er entweder paranoid oder hat etwas ausgefressen, und so einen möchte man ja nicht unbdingt als Nutzer haben. Ach ja, ich hätte gern ein paar Bugs im PHP Session System genannt, da du sie ja schon mehrmals erwähnt hast wirst du sie ja kennen. |
Zitat:
Das einzige was entfernte Ähnlichkeit mit einem Bug hat ist das Phänomen das man selbst bestimmen kann wie die SID lauten soll. Das dieses Verhalten aber so korrekt ist habe ich ja bereits erläutert. Denn auch wenn "abc" ein wenig kurz ist, ist es doch eine korrekte SID. Das mit dem Browser war nur ein beispiel, denn dies habe ich jetzt schon öfter in Session Systemen gesehen. |
Zitat:
Genauso könnte er Serveradmin aber jeden Benutzer den Zugriff auf jede DB geben. Zitat:
Woher soll PHP wissen ob ein Browser Cookies annimmt oder nicht wenn es das nicht probiert?? Zitat:
|
Zitat:
|
Zitat:
Du kannst PHP so konfigurieren das er genau das gewünschte Verhalten aufweist. Man aktiviere dazu nur: session.use_trans_sid |
Zitat:
|
Zitat:
|
Das mag sein, aber um mal auf die eigentliche Frage zurückzukommen: Was für Security Bugs?? |
Zitat:
Zitat:
|
Also, ich frage mich jetzt eines. Wenn in deine Augen Fehler in älteren PHP Versionen bereits ein Kriterium sind um ein eigenes Sessionsystem zu programmieren, wie gehst du dann mit anderen Sicherheitslücken eines Webservers um? Abgesehen davon, wer sagt das dein Sessionsystem sicherer ist. Sofern dein Forum irgendwann als Download verfügbar sein wird, finden sich auch dort Sicherheitslücken. |
Zitat:
Und was war in späteren Versionen?? Du sagst immer, es war was, es ist was drin, nun nenn doch endlich mal etwas. Ansonsten bestätigst du nur meine Meinung, das du eine Rechtvertigung für ein eigenes Session System brauchst, und es in deinem fall keinen wirklichen grund dafür gibt. |
Zitat:
Du hast übrigends vergessen auf die Frage von reimer zu antworten. |
wiw? also ich benutzt das php session sys und muss sagen das ich keine probleme damit habe.. mfg |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:32 Uhr. |