Autor Beitrag
Flamefire
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1207
Erhaltene Danke: 31

Win 10
Delphi 2009 Pro, C++ (Visual Studio)
BeitragVerfasst: Mi 03.01.07 20:23 
user profile iconGTA-Place hat folgendes geschrieben:
user profile iconFlamefire hat folgendes geschrieben:
FALSCH!!! Es kann gar nicht gehen! dein mysql-query ist falsch. so muss er heißen:
ausblenden 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 :zwinker:

Doch sucht er :wink:
probiers aus
das gaze würde sorum gehen
ausblenden 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 108

WinXP
D7 Prof
BeitragVerfasst: Mi 03.01.07 23:10 
Bei dem Query von Flamefire bekomm ich folgenden error:

ausblenden 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
ontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 45

Win XP Home
BDS 2006, PHPCoder
BeitragVerfasst: 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"]

=>>>>

ausblenden 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 108

WinXP
D7 Prof
BeitragVerfasst: Mi 03.01.07 23:58 
Jaaaa ... Vielen Dank an Alle ... es Funktioniert :D

_________________
Input - Output => Ganz Kaputt
*** MFG Supernova ***
Flamefire
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1207
Erhaltene Danke: 31

Win 10
Delphi 2009 Pro, C++ (Visual Studio)
BeitragVerfasst: Fr 05.01.07 08:20 
du kannst meinen auch benutzen aber:
ausblenden Quelltext
1:
$sql_action = mysql_query('SELECT user_id FROM administration_user WHERE username ="'.$_POST["username"].'" AND password = "'.$_POST["password"]'.'"');					

|
|
|
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 576

Win95, Win98 SE, WinXp Prof SP2
D7P, D8P, FPC2.0
BeitragVerfasst: Fr 05.01.07 11:41 
Wie wärs ma mit sowas:

ausblenden 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.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2750

Windows Vista
Delphi 7, Delphi 2005 PE, PHP 4 + 5 (Notepad++), Java (Eclipse), XML, XML Schema, ABAP, ABAP OO
BeitragVerfasst: Fr 05.01.07 14:41 
user profile iconmatze.de hat folgendes geschrieben:
Wie wärs ma mit sowas:

ausblenden 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


Warum setzt du die Werte der Datenfelder nicht in Anführungszeichen?
ausblenden Quelltext
1:
$sql = "SELECT `user_id` FROM `administration_user` WHERE `username` = '$user' AND 'password' = '$pw'";					

_________________
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
ontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 45

Win XP Home
BDS 2006, PHPCoder
BeitragVerfasst: Fr 05.01.07 15:06 
Zur krönung noch ein

$user = md5($user);

da einbauen 8)
Marco D.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2750

Windows Vista
Delphi 7, Delphi 2005 PE, PHP 4 + 5 (Notepad++), Java (Eclipse), XML, XML Schema, ABAP, ABAP OO
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1207
Erhaltene Danke: 31

Win 10
Delphi 2009 Pro, C++ (Visual Studio)
BeitragVerfasst: 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.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2750

Windows Vista
Delphi 7, Delphi 2005 PE, PHP 4 + 5 (Notepad++), Java (Eclipse), XML, XML Schema, ABAP, ABAP OO
BeitragVerfasst: Fr 05.01.07 15:46 
user profile iconFlamefire 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. :zwinker:

_________________
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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: 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 Suche in Wikipedia 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 :P).

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.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2750

Windows Vista
Delphi 7, Delphi 2005 PE, PHP 4 + 5 (Notepad++), Java (Eclipse), XML, XML Schema, ABAP, ABAP OO
BeitragVerfasst: Mo 08.01.07 22:54 
user profile iconBenBE 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:
ausblenden 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'] = '';
}

user profile iconBenBE 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Mo 08.01.07 23:06 
user profile iconMarco D. hat folgendes geschrieben:
user profile iconBenBE 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'?


Bitte nimm mir den Kommentar nicht übel, aber RTFM soll manchmal helfen ;-)

user profile iconMarco D. hat folgendes geschrieben:
Ich mache das so:
ausblenden 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'] = '';
}

Wenn man schon die Session-Verwaltung von PHP verwendet, dann sollte man sie auch korrekt abfragen ... Sehe ich in keiner deiner beiden funktionen ...

user profile iconMarco D. hat folgendes geschrieben:
user profile iconBenBE hat folgendes geschrieben:

Fazit: Bisher würde ich keinen der gebrachten Vorschläge auf meinen Server loslassen - nicht mal im Safe-Mode*!!!

Warum nicht?

Da bisher kaum konstruktive Vorschläge in den betroffenen Quelltext übernommen wurden und ich mich zusammenreißen musste, um dich nicht gleich heimzusuchen :P

_________________
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.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2750

Windows Vista
Delphi 7, Delphi 2005 PE, PHP 4 + 5 (Notepad++), Java (Eclipse), XML, XML Schema, ABAP, ABAP OO
BeitragVerfasst: 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