 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
21.03.2005, 14:19
|
#1
|
|
TP-Supporter
Registriert seit: Feb 2005
|
Ist mein Login-Script sicher?
Hallo,
ich hab vor einiger Zeit mal ein Login-Script programmiert und das inzwischen schon auf mehreren Seite angewendet. Hauptsächlich als Content Manager. Jetzt würde mich aber doch mal interessieren, ob das Script sicher ist. Ich poste jetzt mal nicht den Quellcode, sonder schreib einfach, was wie abgefragt wird.
Die Loginseite
Die Seite ist halt ein Standartformular mit Nick und Passwort, dass dann an eine Verarbeitungsseite geschickt wird.
Die Verarbeitungsseite
Hier wird erstmal der Datensatz gesucht, bei dem der Nick mit dem eingegebenen Nick übereinstimmt. Dann werden die Passwörter abgeglichen (mit md5 verschlüsselt). Wenn das übereinstimmt, wird eine Session gestartet, in der der eingegebene Nick, das mit md5 konvertierte Passwort, die IP und die Session Id eingetragen werden. Dann wird noch das Session Id Feld und das IP Feld in der Datenbank mit den neuen Daten aktualisiert. Der User wird danach zur Startseite weitergeleitet.
Die Startseite
Hier wird wieder der Datensatz mit dem in der Session mitgelieferten Nick gesucht. Diesmal werden Nick, Passwort, IP und Session ID abgeglichen und nur wenn das alles stimmt, wird der Inhalt angezeigt.
Ich hoffe, dass das jetzt verständlich war. Ich bin der Meinung, dass es schon ziemlich sicher ist, da man die Session Daten ja nicht ändern kann, oder ist das Script vielleicht totaler Käse und unsicher?
Gruß, Driver
|
|
|
21.03.2005, 14:29
|
#2
|
|
TP-Greis
Registriert seit: Mar 2001
Ort: Berlin, Germany
|
Ist es MySQL-Injection geschützt?
Wenn Du uns eine Demo online zeigst, dann versuchen wir es zu knacken 
__________________
“My software never has bugs. It just develops random features ...”
» DevShack - die Website des freien Webentwicklers Boris
|
|
|
21.03.2005, 14:32
|
#3
|
|
TP-Supporter
Registriert seit: Feb 2005
|
Zitat:
|
Zitat von Boris
Ist es MySQL-Injection geschützt? 
|
Hmm? Was ist das? Hab ich noch nie von gehört.
Zitat:
|
Zitat von Boris
Wenn Du uns eine Demo online zeigst, dann versuchen wir es zu knacken 
|
Moment, muss mal schauen, ob ich ncoh eins finde, was ich nicht mehr brauche...
|
|
|
21.03.2005, 14:33
|
#4
|
|
TP-Veteran
Registriert seit: Jan 2002
|
Das klingt sehr gut. Wenn die konkrete Implementierung keine Schlupflöcher hat, dürfte das sicher sein. Mein eigenes Login-System funktioniert genauso, nur dass bei mir die Checks von Session-ID und IP-Adresse fehlen.
Ich bin mir auch nicht sicher, ob man die braucht...könnte mir vorstellen, dass der Session-Handler von PHP das schon eingebaut hat. Das werd ich mal herausfinden, und falls es nicht so ist, solche Checks bei meinem System auch einbauen - danke für den Tipp! 
|
|
|
21.03.2005, 14:35
|
#5
|
|
TP-Moderator
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
|
Zitat:
|
Zitat von Boris
Ist es MySQL-Injection geschützt? 
|
..da spricht wohl wer aus Erfahrung, was?
Was bei dem Loginscript evtl. noch zu checken ist: Wie wird der Status gehalten? Also in welcher Variable steht "user ist gültig". Wenn soetwas existiert, dann muss die variable IMMER gesetzt werden.. also true ODER false - nicht nur bei "Erfolg". Falls nicht hat man, vorausgesetzt es sind die register_globals auf on gesetzt, die möglichkeit den status per Get-Parameter zu verändern
Gruss
Jan
|
|
|
21.03.2005, 14:53
|
#6
|
|
TP-Greis
Registriert seit: Mar 2001
Ort: Berlin, Germany
|
MySQL-Injection: Wenn systembedingt auf dem Server die magic_quotes aus sind, und Du Dich auch nicht darum kümmerst, dass bestimmte Zeichen (wie " und ' ) auskommentiert werden (mit addslashes), dann kann man das Loginsystem ganz einfach aushebeln, indem man MySQL-Angaben als Username und Passwort angibt. 
__________________
“My software never has bugs. It just develops random features ...”
» DevShack - die Website des freien Webentwicklers Boris
|
|
|
21.03.2005, 14:58
|
#7
|
|
TP-Supporter
Registriert seit: Feb 2005
|
Zitat:
|
Zitat von Boris
MySQL-Injection: Wenn systembedingt auf dem Server die magic_quotes aus sind, und Du Dich auch nicht darum kümmerst, dass bestimmte Zeichen (wie " und ' ) auskommentiert werden (mit addslashes), dann kann man das Loginsystem ganz einfach aushebeln, indem man MySQL-Angaben als Username und Passwort angibt. 
|
Naja, das würde ja nur beim Nick Feld gehen, da das Passwort Feld ja mit md5 verschlüsselt wird. kann man das nicht einfach unterbinden, indem man für den Nick eine maximale Länge angibt? Ich kenn nämlich keinen MySQL Befehl mit 10 Zeichen oder so.
|
|
|
21.03.2005, 15:02
|
#8
|
|
TP-Moderator
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
|
tipp doch einfach mal ein single und/oder ein doublequote (' oder ") in dein Eingabefeld ein. Sollten diese nicht escaped werden, dann wirds nen MySQL-Error geben.
Gruss
Jan
|
|
|
21.03.2005, 15:08
|
#9
|
|
TP-Supporter
Registriert seit: Feb 2005
|
Zitat:
|
Zitat von Stuck Mojo
tipp doch einfach mal ein single und/oder ein doublequote (' oder ") in dein Eingabefeld ein. Sollten diese nicht escaped werden, dann wirds nen MySQL-Error geben.
Gruss
Jan
|
Hmm, ok. Da hab ich wohl an etwas nicht gedacht. Wie beheb ich das dann? einfach addslashes($nick) bzw. $_POST['nick'] oder was ganz anderes? Muesste je eigentlich nur dazu dienen, dass sich keiner einhacken kann, denn diejenigen, die Zugang haben sollen, haben keine Sonerzeichen im Namen.
|
|
|
21.03.2005, 17:10
|
#10
|
|
TP-Veteran
Registriert seit: Jan 2002
|
Hmmm...anscheinend hat das Session-System von PHP tatsächlich keinen eingebauten IP-Adressen-Check.
D.h., man könnte theoretisch die Session auf einem anderen Computer "klauen".
Kann das vielleicht jemand von euch bestätigen?
|
|
|
21.03.2005, 17:13
|
#11
|
|
TP-Veteran
Registriert seit: Mar 2005
Ort: Oyten
|
Zitat:
|
Zitat von seb
Hmmm...anscheinend hat das Session-System von PHP tatsächlich keinen eingebauten IP-Adressen-Check.
D.h., man könnte theoretisch die Session auf einem anderen Computer "klauen".
Kann das vielleicht jemand von euch bestätigen?
|
Ja, das ist so.
Wenn eine IP-Abhängigkeit gegeben wäre dann wäre das Ergebnis aber auch katastrophal: AOL-User haben wechselnde Adressen (bei jedem Klick) und Anfragen verschiedener User aus einem Firmennetzwerk über einen Proxy gestellt haben nun wieder die gleiche IP. Die Unterscheidung ginge in die Hose. 
|
|
|
21.03.2005, 17:28
|
#12
|
|
TP-Veteran
Registriert seit: Jan 2002
|
Zitat:
|
AOL-User haben wechselnde Adressen (bei jedem Klick)
|
Das hab ich auch grad eben gelesen...was ein Kack
Interessanter Artikel zum Thema: http://www.sitepoint.com/blog-post-view.php?id=156260
Ich merke, da gibt's noch manches, was ich bei meinem Login-System bisher nicht beachtet hab...aber leider auch keine wirklich sichere und gleichzeitig nicht über-restriktive (Problem mit wechselnden IP-Adressen bei AOL) Schutzmöglichkeit.
|
|
|
21.03.2005, 17:31
|
#13
|
|
TP-Supporter
Registriert seit: Feb 2005
|
Das heißt dann also, dass mein Script für AOL User unbrauchbar ist?!
|
|
|
21.03.2005, 18:04
|
#14
|
|
TP-Veteran
Registriert seit: Mar 2005
Ort: Oyten
|
Zitat:
|
Zitat von Driver
Das heißt dann also, dass mein Script für AOL User unbrauchbar ist?!
|
Wenn Du eins und eins zusammenzählst, dann ist das so. 
|
|
|
21.03.2005, 18:18
|
#15
|
|
TP-Supporter
Registriert seit: Feb 2005
|
So ein Mist, warum macht denn AOL sowas? Gibt es denn eine Möglichkeit mit PHP den Anbieter eines Users rauszubekommen? Wahrscheinlich nicht  Wenn ich die IP Abfrage weglasse, klappt es aber dann Problemlos, also AOL verändert nciht die Session ID?!
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| Thema bewerten |
|
|
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.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 16:32 Uhr.
|
 |