Hi zusammen,
fragt mich nicht wie, aber gerade kam mir ein wilder Gedanken:
Ich programmiere gerade den Login meiner neuen Seite, will nach dem Login die UserID als Session speichern.
Nun ist die UserID Int, beginnend bei 0-X.
Wäre es nicht einfach Möglich programatisch die Session UserID zu verändert im Browser und zack - ist man als Person X angemeldet?
Ich breuchte doch nur hingehen und meine UserID von 3 auf 1 ändert und schon hab ich nen anderen registrierten User.
Das Leben is :ugly:
Verdammt, mach das Fenster zu, wer hat den Gamma-Wert so hoch gestellt?
Wenn Du die Session nicht anderweitig absicherst, beispielsweise das Cookie verschlüsselst, oder die Session an die Client-IP bindest, dann hast Du (leider) recht.
Wissensvermittler und Technologieberater
für .NET, Codequalität und agile Methoden
Selbstverständlich ist das eine Gefahr. Um sicher zu sein sind Verschlüsselungsverfahren zwingend, also bei Browsern HTTPS. Ansonsten würde ich empfehlen, wenigstens eine GUID als Session-ID zu verwenden. Die errät man eher nicht. Natürlich kann man die auch abfangen und verwenden, aber das ist eben nicht mehr ganz so einfach. Bindungen an Client-IPs kann man machen, sind aber im Zeitalter von allgegenwärtigem NAT nur ein bedingter Schutz. Die Verschlüsselung eines Integers kann man sich schenken, es sein denn, du füllst sie mit einem Salt auf. Aber dann kannst du auch gleich eine GUID verwenden.
huhu,
will nach dem Login die UserID als Session speichern.
ALS Session oder IN der Session (zB. Session["UserId"] = xxx;)
Wenn Du sie IN der Session speicherst, dann wird sie nicht zum Client weitergegeben, das geht also in Ordnung. Wenn du einen Session-Handler baust, der diesen Int als Session-ID verwendet, dann ist das absolut tödlich. Deine UserID keinesfals per Cookie zum Client schicken.
😃
Xynratron
PS: Es gab da mal nen Vorfall mit einer Telekom-Website, muss so 2005 (oder früher) gewesen sein. Die haben Int verwendet und diese als Parameter in der URL übergeben. Schau mal ob du im Netz noch nen Bericht dazu findest. Der Finder dieser Sicherheitslücke hat da einen ziemlich langen Artikel dazu geschrieben. War auch auf heisse.de gestanden. Da sind einige sehr interessante Ansätze wie man es nicht machen sollte geschildert.
Herr, schmeiss Hirn vom Himmel - Autsch!
Die Erfahrung zeigt immer wieder, dass viele Probleme sich in Luft auslösen, wenn man sich den nötigen Abstand bzw. Schlaf gönnt.
Der Web-Server übernimmt für Dich die Sessionverwaltung und auch die Session-ID für jeden Benutzer die eindeutig ist. Du mußt da nicht großartig nochwas zusätzlich ALS Session anlegen und das würde ich auch nicht empfehlen.
Wie schon erwähnt gibt es ja verschieden Protokolle die Du verwenden kannst um Deine Sicherheit zu steigern.
Aber in der Regel reicht ein normaler Login- und Authentifizierungsprozess völlig aus.
Das Web ist nun mal unsicher und wird es auch immer bleiben, und meistens ist das größte Sicherheitsrisiko der Benutzer selbst. Und den kannst Du nicht kontrollieren...