Portal > Foren > PHP > PHP-Programmierung > Session fixation bzw. Hijacking
Antwort
 
Themen-Optionen Thema durchsuchen
Alt 17.07.2006, 19:35 Nach oben    #1
leftover when bar closes
 
Benutzerbild von dsxs
 
Registriert seit: 29.06.2006
Ort: Bern
Beiträge: 123
Standard Session fixation bzw. Hijacking

Für unseren Onlineshop muss ich mit Sessions arbeiten. Damit dieser auch für User funktioniert, welche Cookies ablehnen, habe ich session.use_trans_sid aktiviert.

Funktioniert bestens, um Hijacking zu unterbinden möchte ich nun jedoch etwas realisieren, was ich auf jeder Seite einbinden kann.

Wie müsste eine solche Funktion aussehen, damit Session Hijacking (Eingabe einer sid über Adresse (GET)) ausgeschlossen werden kann, primär Cookies verwendet werden und trans_sid nur als Fallback angewandt wird?!
Was wenn der User Cookies akzeptiert, dann aber versucht, die ID per GET zu übermitteln?

Über allfällige Codeschnipssel eurer Webshos, Adminpanels etc wäre ich sehr froh.

Danke und Gruss
__________________
Unkraut ist die Opposition der Natur gegen die Regierung der Gärtner.
ticketbörse

dsxs ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 17.07.2006, 20:01 Nach oben    #2
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.512
Standard

Das mit dem Fallback könntest du ja so lösen, dass, wenn der User Cookie akzeptiert (etwas ins Cookie schreiben und wieder auslesen und dann vergleichen!), die SessionID per URL nicht erlaubt wird und aus dem URL herausgeschnitten wird.

Werden Cookies nicht akzeptiert ... tjoa .. wüsste nicht, wie man da absichern soll, dass wirklich der "richtige" User mit der SID weiterarbeitet.

Ich würde ja sagen .. wer den Shop nutzen will soll Cookies für ihn akzeptieren. Fertig.
Ben ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 17.07.2006, 20:10 Nach oben    #3
leftover when bar closes
 
Benutzerbild von dsxs
 
Registriert seit: 29.06.2006
Ort: Bern
Beiträge: 123
Standard

Hmm letzteres habe ich mir auch bereits überlegt. Leider bin ich jedoch immer noch der Meinung, dass ich es mir nicht leisten kann, von unserer Kundschaft zu erwarten, dass sie diverse Dinge haben oder eben nicht haben - es ist meine Arbeit sicherzustellen, dass es auf jeden Fall funktioniert.

Ich habe schon davon gelesen, die IP des Users in die Session zu packen und jedesmal zu vergleichen. Wenns nicht übereinstimmt, session_destroy und wieder session_start. Bringt's so was?

Sehr mühsam das ganze, aber danke für den Post.
__________________
Unkraut ist die Opposition der Natur gegen die Regierung der Gärtner.
ticketbörse

dsxs ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 17.07.2006, 20:14 Nach oben    #4
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.512
Standard

Afaik wechselt die IP bei AOL-Usern aber auch mal so einfach zwischendurch. Das würde also auch nicht so funktionieren, wie du das möchtest.
Ben ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 17.07.2006, 20:14 Nach oben    #5
axo
Gast
 
Beiträge: n/a
Standard

stell das ganze auf https um und du hast ruhe, alles andere ist kinderkram.

grüße
axo
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 17.07.2006, 20:27 Nach oben    #6
leftover when bar closes
 
Benutzerbild von dsxs
 
Registriert seit: 29.06.2006
Ort: Bern
Beiträge: 123
Standard

Warum wechseln die IP's der AOL user denn einfach mal so? Ist ja voll fürn Arsch?!

SSL ist leider nicht möglich, da nicht von unserem Host unterstützt.

Es muss hier ne Lösung geben, Foren basieren ja prinzipiell auf demselben Prinzip?! Wie handhaben die's?


Gratulation zur neuen Couch axo
__________________
Unkraut ist die Opposition der Natur gegen die Regierung der Gärtner.
ticketbörse

dsxs ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 17.07.2006, 20:39 Nach oben    #7
Jay
Gast
 
Beiträge: n/a
Standard

Es gibt da so einen methode session_regenerate_id oder so ähnlich (schon lang nix mehr mit php gemacht :>). Da würd ich dir empfehlen, dass du sofern du viele Resourcen hast die ID bei jedem Aufruf neu generierst oder vor dem Bezahlen eine Passwortabfrage machst

Die IP Lösung ist nicht so toll, weil Benutzer oft mit Proxies unterwegs sind.
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 17.07.2006, 20:39 Nach oben    #8
Jay
Gast
 
Beiträge: n/a
Standard

Zitat:
SSL ist leider nicht möglich, da nicht von unserem Host unterstützt.
Du kannst doch keinen Onlineshop ohne SSL betreiben!
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 17.07.2006, 21:17 Nach oben    #9
axo
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von dsxs
Warum wechseln die IP's der AOL user denn einfach mal so? Ist ja voll fürn Arsch?!
nein, es ist loadbalancing. das ist schon ok so. (fast) jeder, der hinter einem proxy sitzt, wechselt nach außen seine ip permanent.

Zitat:
SSL ist leider nicht möglich, da nicht von unserem Host unterstützt.
das fällt unter grobe fahrlässigkeit.
Zitat:
Es muss hier ne Lösung geben,
ja, ssl. das wurde dafür gemacht.

Zitat:
Foren basieren ja prinzipiell auf demselben Prinzip?! Wie handhaben die's?
die daten in foren sind bei weitem nicht so sensitiv wie shop-daten, aus diesem grund kann man schlampigere lösungen tolerieren. what the heck, wenn irgend ein cracker einen user-account hijackt und ein paar postings löscht ... das backup spielt das wieder ein und gut is. wenn jemand aber durch einen fehler deinerseits an meine kreditkartennummer (oder sonstige private daten) kommt, hole ich dich als verantwortlichen aber vor's (jüngste) gericht.

Zitat:
Gratulation zur neuen Couch axo
dankeschön... inzwischen ist sie ja gar nicht mehr so neu, die couch... ohje, wie die zeit vergeht :heul:

Geändert von axo (17.07.2006 um 21:29 Uhr)
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 17.07.2006, 21:18 Nach oben    #10
leftover when bar closes
 
Benutzerbild von dsxs
 
Registriert seit: 29.06.2006
Ort: Bern
Beiträge: 123
Standard

Zitat:
Zitat von Jay
Zitat:
SSL ist leider nicht möglich, da nicht von unserem Host unterstützt.
Du kannst doch keinen Onlineshop ohne SSL betreiben!
SSL ist für uns im Moment leider nicht möglich, ich sehe keine Alternative.

Was die Bezahlung anbelangt so läuft die selbstverständlich verschlüsselt über den Gateway unseres Finanzinstituts.

SSL würde am Sessionproblem aber rein gar nichts ändern, kann mich aber auch täuschen.

Habe mich entschieden - Ohne Rücksicht auf Verluste: der User muss Cookies erlauben und darf sonst gerne draussen bleiben. Mühsame Sache, aber so passts.
__________________
Unkraut ist die Opposition der Natur gegen die Regierung der Gärtner.
ticketbörse

dsxs ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 17.07.2006, 21:46 Nach oben    #11
axo
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von dsxs
SSL würde am Sessionproblem aber rein gar nichts ändern, kann mich aber auch täuschen.
doch, weil die verbindung abgesichert wird und die session-ID über einen sicheren kanal hin-und-her-geschickt wird (ob GET oder COOKIE sei egal). damit kann hijacking nur dann passieren, wenn irgend ein depp den URI inklusive session-ID in ein mail kopiert und an den cracker schickt. ohne https kann man die daten an jedem router zwischen webserver und client-rechner anzapfen.
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 17.07.2006, 22:09 Nach oben    #12
leftover when bar closes
 
Benutzerbild von dsxs
 
Registriert seit: 29.06.2006
Ort: Bern
Beiträge: 123
Standard

Zitat:
Zitat von axo
damit kann hijacking nur dann passieren, wenn irgend ein depp den URI inklusive session-ID in ein mail kopiert und an den cracker schickt. ohne https kann man die daten an jedem router zwischen webserver und client-rechner anzapfen.
Wobei wir wieder beim Thema sind.
Das mit SSL ist ein Argument und ich werde versuchen den Host zu überzeugen, uns diese Möglichkeit schnellstmöglichst zu besorgen, damit wir es einsetzen können.

Nun aber zum Hijacken - mein Problem liegt genau dort - User (Deppen), die die sid in der URL weitermailen, in nem IM verschicken, in Foren posten...
Wie kann ich dies kontrollieren?

IP ist schonmal nicht möglich.

Ich sehe gerade zwei Möglichkeiten

1.) den Referer zu checken, wenn die Ursprungsseite nicht eine von uns ist: session weg, neue machen
Frage: Kann ich grundsätzlich auf den Referer bauen oder kann der auch fehlen? Dass er manipuliert werden kann ist klar, aber so sicher muss der Shop auch wieder nicht sein.

2.) User muss Cookies akzeptieren - Ben's Vorschlag. Ich bin nicht sehr überzeugt davon, wenns aber dank Dummheit (bzw. Unwissenheit) unserer Kunden nicht anders geht, oke.
__________________
Unkraut ist die Opposition der Natur gegen die Regierung der Gärtner.
ticketbörse

dsxs ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 17.07.2006, 22:12 Nach oben    #13
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.512
Standard

Du kannst so etwas nicht überprüfen. Dummheit ist einfach nicht kontrollierbar.
Wenn jemand sein Passwort mit einer Mail verschickt .. jupp, dann ist das auch nicht kontrollierbar.

Seh ich jedenfalls so!
Ben ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 18.07.2006, 00:05 Nach oben    #14
axo
Gast
 
Beiträge: n/a
Standard

nein, auf den referer kannst du nicht bauen. nimm zweiteres, mit cookies. und dazu noch ein abschnitt in den online-FAQ, warum cookies die sicherheit erhöhen.
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 18.07.2006, 00:43 Nach oben    #15
leftover when bar closes
 
Benutzerbild von dsxs
 
Registriert seit: 29.06.2006
Ort: Bern
Beiträge: 123
Standard

Danke ihr beiden - genau dafür habe ich mich nun entschieden:

Shop kann normal durchgewühlt werden, sobald jedoch ein Artikel in den Warenkorb gelegt werden soll oder sich ein User einloggen will, braucht er Cookies durchzulassen. Somit erspare ich mir zugleich das Problem, die URLS (bzw die sid darin) für Suchmaschinen rauszuschneiden...
Alle anderen dürfen gerne draussen bleiben...

Dennoch werde ich auf jeder seite ein session_start machen müssen, falls sich jemand anmeldet soll er dies ja auch bleiben. Da meine Sessions grundsätzlich in der Datenbank gespeichert werden kann ich ein Feld 'uses_cookies' definieren und den Wert auf 1 setzen, wenn nach session_start die entsprechende sid vom Cookie ausgelesen werden kann.
Ein Cron der alle zwei Minuten alle Sessions die älter als 5 Minuten sind und bei uses_cookies den Wert 0 haben löscht sollte dann auch sämtliche Sessions eliminieren, die User, welche keine Cookies benutzen bei jedem Seitenaufruf neu gestartet haben...

Nicht sehr Resourceschonend - wobei es auf diesem System diesbezüglich keine Probleme geben wird.
Habt ihr dennoch eine andere Idee?


P.s: der Hint mit SSL gibt mir auch bischen zu denken; ich werde den Host mal zu überreden versuchen, dies verfügbar zu machen.


Danke und Gruss,
dsxs
__________________
Unkraut ist die Opposition der Natur gegen die Regierung der Gärtner.
ticketbörse

dsxs ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 18.07.2006, 09:20 Nach oben    #16
Jay
Gast
 
Beiträge: n/a
Standard

Ich sags nochmal:
Zitat:
Es gibt da so einen methode session_regenerate_id oder so ähnlich (schon lang nix mehr mit php gemacht :>). Da würd ich dir empfehlen, dass du sofern du viele Resourcen hast die ID bei jedem Aufruf neu generierst oder vor dem Bezahlen eine Passwortabfrage machst
Nur Cookies kannst vergessen.
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 18.07.2006, 10:44 Nach oben    #17
leftover when bar closes
 
Benutzerbild von dsxs
 
Registriert seit: 29.06.2006
Ort: Bern
Beiträge: 123
Standard

Zitat:
Zitat von Jay
Ich sags nochmal:
Zitat:
Es gibt da so einen methode session_regenerate_id oder so ähnlich (schon lang nix mehr mit php gemacht :>). Da würd ich dir empfehlen, dass du sofern du viele Resourcen hast die ID bei jedem Aufruf neu generierst oder vor dem Bezahlen eine Passwortabfrage machst
Nur Cookies kannst vergessen.
Jetzt verstehe ich was du genau meinst. Die sid wird _ständig_ neu generiert, also sowohl im GET als auch im COOKIE permanent neu gemacht.
Hier müsste ich einfach darauf achten, die Datenjeweils in die neue Session zu portieren, falls dies nicht sogar selber bereits passiert (Session wird wohl einfach umbenannt, Inhalt bleibt).

Gut, das würde mir erlauben, den Usern höchstmöglichen Komfort und dazu noch Sicherheit bzgl Sessionklau zu ermöglichen.

Wie verhindere ich jedoch, dass Google&Co meine Links samt sid indexiert, bzw. deswegen nicht beachtet? Session nur starten, wenn es kein bekannter Bot ist? Hat diesbezüglich schon wer was realisiert?
__________________
Unkraut ist die Opposition der Natur gegen die Regierung der Gärtner.
ticketbörse

dsxs ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 18.07.2006, 11:20 Nach oben    #18
Jay
Gast
 
Beiträge: n/a
Standard

Wenn der User eingeloggt ist wird die ID sowieso geändert, es ist also relativ egal ob da die SessionId drinnen ist oder nicht.
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 18.07.2006, 11:25 Nach oben    #19
leftover when bar closes
 
Benutzerbild von dsxs
 
Registriert seit: 29.06.2006
Ort: Bern
Beiträge: 123
Standard

Richtig, es geht mir hier jedoch mehr um die SuMafreundlichkeit und eine maximale Indexierung.

Session erst nach erfolgreichem Login oder nach "Was-in-Korb-schmeissen" starten wäre eine weitere Möglichkeit.
__________________
Unkraut ist die Opposition der Natur gegen die Regierung der Gärtner.
ticketbörse

dsxs ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 18.07.2006, 11:38 Nach oben    #20
Jay
Gast
 
Beiträge: n/a
Standard

und wieso sollte die SessionId die Indexierung stören? Man kann die ja auch schön in die URL integrieren:
z.B.
http:/www.asdf.de/produkte/elektronik/tv/flat_screen/samsung/ueberfernseher/31k43jk475l45435j/
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

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.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
PingBacks sind an
RefBacks sind aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Session Sicherheitsfrage phpdev PHP-Programmierung 24 23.08.2007 22:38
Problem mit ver-, bzw entschlüsslung Garnele PHP-Programmierung 1 29.01.2007 16:39
Mails empfangen / versenden "Access to default session denied" Robinson Allgemeine Java-Programmierung 0 14.12.2005 15:11
Session - Projekt Kommunikation DasMööp PHP-Programmierung 17 23.08.2005 00:02
[PHP] Daten per Session übergeben Ben Tutorials 0 14.12.2004 14:34


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:36 Uhr.


Powered by vBulletin® Version 3.7.4 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45