Philipp Hasenfratz: Security-Konzept -> Mies oder Gut? -> Vorschlaege?

Beitrag lesen

Halihallo Aqua

User loggt sich ein,
es werden 2 Session-ID's erzeugt.

Och nö... Warum denn zwei? - Um die Wahrscheinlichkeit um den Faktor 2 zu verringern?
Häng einfach ein bit mehr an die zufällig gewählte Session-ID und du hast das selbe
Ergebnis...

Die erste Session-ID wird im Cookie gespeichert,
die zweite im Query-String.

Und was ist mit Kunden ohne Cookies? - Bzw. Er öffnet in der zwischenzeit mehrere
andere Websiten und dein Cookie fällt aus der Liste der ersten 300? - Denn mehr
werden laut RFC nicht empfohlen.

Diese beiden ID's werden natürlich noch zusaetzlich in der Datenbank gespeichert.

Was meinst du mit ID? - Ich hoffe doch stark, dass dies keine normalen autoinc-Werte
sind, die sich einfach erraten lassen? - Ich hoffe, dass du MD5 verwendest und so einen
zufälligen 128-bit Schlüssel generierst...

Weiters werden in der Datenbank die IP-Adresse gespeichert,
sowie Referrer und Browser des Users.

Bringt nix.

Wenn sich der User dann weiter durchklicken will auf der Homepage,
und auch nur ein Wert passt nicht,
wird er sofort ausgeloggt!!

OK.

Bei jedem Mal, wo der User auf irgendeinen Link klickt,
wird - nachdem gecheckt wurde ob alle Daten passen -
sofort wieder eine neue Session-ID für den Cookie
und eine weitere für den Querystring erzeugt.

Die Idee halte ich für gut und sehr interessant. Bloss: Was, wenn der Kunde auf den
Browser-Zurück-Button klickt und dort noch die alten SessionKeys in dem QueryString
stehen? - Ende feuer, logout, warum fragt sich dann der Kunde?
Das liesse sich zwar alles über JS beheben... Sicherheitstechnisch mag das ein Vorteil
sein, aber programmiertechnisch und kundentechnisch bestimmt nicht.

Zudem: Wenn bei jedem Request der SessionKey (nicht -ID, bitte) ändert, wären Man in the
middle Attacken dennoch denkbar, nur müsste derjenige in der Mitte einfach schneller
sein, als dein Kunde... Aber die Wahrscheinlichkeit verringerst du damit.

Weiters kommt SSL zum einsatz.

OK.

Viele Leute meinten bisher schon,
dass mich das vor "the man in the middle" auch nicht beschützt,
und generell nicht sicher sei.

"Generell nicht sicher sei"? - Was haben sie denn für Kritik geäussert?

  1. Ist CGI::Session sicherer als das was ich von Hand mache?

Die Funktionsweise von CGI::Session entnimm der Doku. Vergleiche deren Mechanismen mit
deinen. Vorweg: CGI::Session ist ein allgemeines Packet und genügt den meisten
Sicherheits-Anforderungen.

  1. Wie würdest ihr halbwegst gute Sicherheit herstellen?

[pref:t=48537&m=264832] ff. vielleicht interessiert dich die Diskussion dort.

PS.: Dass es 100%ige Sicherheit in der Hinsicht
     nicht geben kann weiß ich!

leider wahr :-)

Viele Grüsse

Philipp

--
RTFM! - Foren steigern das Aufkommen von Redundanz im Internet, danke für das lesen der Manuals.
Selbstbedienung! - Das SelfForum ist ein Gratis-Restaurant mit Selbstbedienung, Menüangebot steht in den </faq/> und dem </archiv/>.