Autor |
Beitrag |
Flamefire
      
Beiträge: 1207
Erhaltene Danke: 31
Win 10
Delphi 2009 Pro, C++ (Visual Studio)
|
Verfasst: Mi 03.01.07 20:23
GTA-Place hat folgendes geschrieben: | Flamefire hat folgendes geschrieben: | FALSCH!!! Es kann gar nicht gehen! dein mysql-query ist falsch. so muss er heißen:
Quelltext 1:
| $sql_action = mysql_query('SELECT user_id FROM administration_user WHERE username ="'.$_POST["username"].'" AND password = "'.$_POST["password"]'.'"'); |
ansonsten sucht er statt nach dem namen nach der zeichenkette $_POST["username"]
nicht nach dem inhalt davon! |
Nein, sucht er nicht  |
Doch sucht er
probiers aus
das gaze würde sorum gehen
Quelltext 1:
| $sql_action = mysql_query("SELECT user_id FROM administration_user WHERE username ='$_POST['username']' AND password = '$_POST['password']'"); |
und möglicherweise nicht mal so (ich glaub bei array müssen noch {} drum rum)
-->Merke: In Strings mit "" ersetzt er Variablen
In Strings mit '' nicht!
|
|
Supernova 
      
Beiträge: 108
WinXP
D7 Prof
|
Verfasst: Mi 03.01.07 23:10
Bei dem Query von Flamefire bekomm ich folgenden error:
Quelltext 1:
| Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in C:\Programme\*\administration_login.php on line 6 |
Sry ^^
_________________ Input - Output => Ganz Kaputt
*** MFG Supernova ***
|
|
LeoLöwe
      
Beiträge: 45
Win XP Home
BDS 2006, PHPCoder
|
Verfasst: Mi 03.01.07 23:45
Was hab ich euch gesagt... Query is falsch... Aber neeee auf mich hört ja kener
Egal.
Also wenn du später mal längere Abfragen aufbaust empfehle ich dir eine andere Struktur zu wählen:
z.b. machst du das in deinem Fall dann so
SELECT user_id FROM administration_user WHERE username = $_POST["username"] AND password = $_POST["password"]
=>>>>
Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| $sql = "SELECT user_id FROM administration_user WHERE username = '"; $sql .= $_POST['username']; $sql .= "' AND password= '"; $sql .= $_POST["password"]; $sql .= "';";
//zum debuggen: //echo $sql;
$sql_action = mysql_query($sql); |
Das Debug-Query lass dir mal ausgeben und gib das mal von Hand in PHPMyAdmin ein.
Viel Glück!
|
|
Supernova 
      
Beiträge: 108
WinXP
D7 Prof
|
Verfasst: Mi 03.01.07 23:58
Jaaaa ... Vielen Dank an Alle ... es Funktioniert 
_________________ Input - Output => Ganz Kaputt
*** MFG Supernova ***
|
|
Flamefire
      
Beiträge: 1207
Erhaltene Danke: 31
Win 10
Delphi 2009 Pro, C++ (Visual Studio)
|
Verfasst: Fr 05.01.07 08:20
du kannst meinen auch benutzen aber:
Quelltext 1:
| $sql_action = mysql_query('SELECT user_id FROM administration_user WHERE username ="'.$_POST["username"].'" AND password = "'.$_POST["password"]'.'"'); |
|
|
|
Quelltext 1:
| $sql_action = mysql_query('SELECT user_id FROM administration_user WHERE username ="'.$_POST["username"].'" AND password = "'.$_POST["password"].'"'); |
da war hinten ein hochkomma zuviel...
|
|
matze.de
      
Beiträge: 576
Win95, Win98 SE, WinXp Prof SP2
D7P, D8P, FPC2.0
|
Verfasst: Fr 05.01.07 11:41
Wie wärs ma mit sowas:
Quelltext 1: 2: 3: 4: 5: 6: 7:
| [...] $user = mysql_real_escape_string($_POST["username"]); $pw = mysql_real_escape_string($_POST["password"]);
$sql = "SELECT `user_id` FROM `administration_user` WHERE `username` = '$user' AND password = '$pw'"; $result = mysql_query($sql); [...] |
Aber Passwörter gehören normalerweise gehasht in eine Datenbank....
mfg matze
_________________ si tacuisses, philosophus mansisses.
Zuletzt bearbeitet von matze.de am Fr 05.01.07 15:30, insgesamt 1-mal bearbeitet
|
|
Marco D.
      
Beiträge: 2750
Windows Vista
Delphi 7, Delphi 2005 PE, PHP 4 + 5 (Notepad++), Java (Eclipse), XML, XML Schema, ABAP, ABAP OO
|
Verfasst: Fr 05.01.07 14:41
_________________ Pascal keeps your hand tied. C gives you enough rope to hang yourself. C++ gives you enough rope to shoot yourself in the foot
|
|
LeoLöwe
      
Beiträge: 45
Win XP Home
BDS 2006, PHPCoder
|
Verfasst: Fr 05.01.07 15:06
Zur krönung noch ein
$user = md5($user);
da einbauen 
|
|
Marco D.
      
Beiträge: 2750
Windows Vista
Delphi 7, Delphi 2005 PE, PHP 4 + 5 (Notepad++), Java (Eclipse), XML, XML Schema, ABAP, ABAP OO
|
Verfasst: Fr 05.01.07 15:08
Wenn ich aber ein langes Kennwort mit Sonderzeichen und Zahlen habe, dann dauert es sehr sehr lange, das zu knacken. 
_________________ Pascal keeps your hand tied. C gives you enough rope to hang yourself. C++ gives you enough rope to shoot yourself in the foot
|
|
Flamefire
      
Beiträge: 1207
Erhaltene Danke: 31
Win 10
Delphi 2009 Pro, C++ (Visual Studio)
|
Verfasst: Fr 05.01.07 15:44
willst du es knacken? wenn nicht dann benutz md5!
oder jeder dern bissl hacken kann kriegt alle deine pws
PS: und natürlich: md5($pw) nicht md5($user)...den usernamen zu verschlüsseln ist dumm...den brauchste ja noch im klartext
|
|
Marco D.
      
Beiträge: 2750
Windows Vista
Delphi 7, Delphi 2005 PE, PHP 4 + 5 (Notepad++), Java (Eclipse), XML, XML Schema, ABAP, ABAP OO
|
Verfasst: Fr 05.01.07 15:46
Flamefire hat folgendes geschrieben: | willst du es knacken? wenn nicht dann benutz md5!
oder jeder dern bissl hacken kann kriegt alle deine pws
PS: und natürlich: md5($pw) nicht md5($user)...den usernamen zu verschlüsseln ist dumm...den brauchste ja noch im klartext |
Da liegt ein Missverständnis vor.  Mein Post bezog sich auf den von LeoLöwe (einer davor), der aber wieder editiert wurde, also mein Post damit überflüssig wird. 
_________________ Pascal keeps your hand tied. C gives you enough rope to hang yourself. C++ gives you enough rope to shoot yourself in the foot
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: Mo 08.01.07 21:25
Darf ich den Thread-Ersteller bitte um Schadensersatz bitten, dass ich überhaupt weitergelesen habe? Bei so vielen Fehlern wird einem ja schon schlecht *g*
Die Sache wie man sich gegen XSS schützt, hat Matze.de korrekt gesagt ... Ferner sollte man generell ohne @ programmieren (wurde auch erwähnt). Die Eingabe-Daten sollten IMMER explizit aus den Arrays $_POST und $_GET gelesen werden - inzwischen mehrfach angedeutet, aber noch nicht so richtig umgesetzt ...
Ferner wird in dieser Datei nirgends die verwendete Session mit session_start initialisiert, geschweige denn korrekt gelöscht (beim logout).
Auch kann ich bei dieser Login\Logout-Page keinerlei Schutz gegen XSRF-Angriffe erkennen. Bitte DRINGEND nachholen, sonst endest Du wie Google, wo Dir jeder einen Link unterjubeln kann, der die Default-Interface-Sprache auf japanisch einstellt ... (Funktioniert wirklich, hab's mal getestet  ).
Ferner habe ich in diesem Thread noch keinen gesehen, der die Rückgaben der Datenbank-Abfragen prüft ... @matze.de: Auch wenn Du da bei BattleArms nicht viel zu tun hast - bei reinem PHP solltest Du da noch etwas stärker drauf achten!!!
Fazit: Bisher würde ich keinen der gebrachten Vorschläge auf meinen Server loslassen - nicht mal im Safe-Mode*!!!
*Der auch nicht wirklich was bringt ...
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
Marco D.
      
Beiträge: 2750
Windows Vista
Delphi 7, Delphi 2005 PE, PHP 4 + 5 (Notepad++), Java (Eclipse), XML, XML Schema, ABAP, ABAP OO
|
Verfasst: Mo 08.01.07 22:54
BenBE hat folgendes geschrieben: | Ferner wird in dieser Datei nirgends die verwendete Session mit session_start initialisiert, geschweige denn korrekt gelöscht (beim logout). |
Wie wird sie denn 'korrekt gelöscht'?
Ich mache das so:
Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| // gibt true zurück, wenn der User eingeloggt ist // gibt false zurück, wenn der User nicht eingeloggt ist function IsLoggedIn() { if (empty($_SESSION['name'])) return false; else return true; }
//loggt den User aus und entfernt alle $_SESSION-Variablen function Logout() { $_SESSION['name'] = ''; $_SESSION['id'] = ''; $_SESSION['language'] = ''; $_SESSION['ip'] = ''; } |
BenBE hat folgendes geschrieben: |
Fazit: Bisher würde ich keinen der gebrachten Vorschläge auf meinen Server loslassen - nicht mal im Safe-Mode*!!! |
Warum nicht?
_________________ Pascal keeps your hand tied. C gives you enough rope to hang yourself. C++ gives you enough rope to shoot yourself in the foot
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: Mo 08.01.07 23:06
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
Marco D.
      
Beiträge: 2750
Windows Vista
Delphi 7, Delphi 2005 PE, PHP 4 + 5 (Notepad++), Java (Eclipse), XML, XML Schema, ABAP, ABAP OO
|
Verfasst: Mo 08.01.07 23:11
Ok. Schaue ich mir bei Gelegenheit mal an. 
_________________ Pascal keeps your hand tied. C gives you enough rope to hang yourself. C++ gives you enough rope to shoot yourself in the foot
|
|