Laden...

Sicherheitsgefahr durch Int-UserID und Session?

Erstellt von Kovu vor 14 Jahren Letzter Beitrag vor 14 Jahren 774 Views
K
Kovu Themenstarter:in
488 Beiträge seit 2006
vor 14 Jahren
Sicherheitsgefahr durch Int-UserID und Session?

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?

4.207 Beiträge seit 2003
vor 14 Jahren

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

www.goloroden.de
www.des-eisbaeren-blog.de

S
8.746 Beiträge seit 2005
vor 14 Jahren

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.

X
1.177 Beiträge seit 2006
vor 14 Jahren

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.

T
307 Beiträge seit 2008
vor 14 Jahren

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...