PHP/MySQL Login / Adminpanel

05/28/2018 08:01 False#16
Quote:
Originally Posted by majorkratze View Post
Auf keinen Fall solltest du so deinen Query schreiben.

Zunächst einmal solltest du deinen Username mit mysqli_real_escape_string speichern.
Also so:

PHP Code:
$username mysqli_real_escape_string($conn$_SESSION['username']); 
Danach solltest du einen parametrierten SQL Befehl absetzen. Alles andere ist anfällig für Injections und stellt ein erhöhtes Sicherheitsrisiko dar.

PHP Code:
$query sprintf("SELECT `kontostand` FROM `users` WHERE `username` = '%s' "$username);

if (!
mysqli_query($conn$query)) {
  die(
'Error: ' mysqli_error($conn));

Oder man macht es sich einfach und hält den Code zudem sauberer indem man Prepared statements(PDO) nutzt.
05/28/2018 18:27 iMostLiked#17
Quote:
Originally Posted by .ƒaℓsє. View Post
Oder man macht es sich einfach und hält den Code zudem sauberer indem man Prepared statements(PDO) nutzt.
Für dieses Vorhaben kann ich [Only registered and activated users can see links. Click Here To Register...] empfehlen.
Easy, clean und sicher.
05/28/2018 22:34 False#18
Quote:
Originally Posted by iMostLiked View Post
Für dieses Vorhaben kann ich [Only registered and activated users can see links. Click Here To Register...] empfehlen.
Easy, clean und sicher.
Oder man nutzt sofort PDO hat den Code sauber und sicher ohne third party stuff.
05/29/2018 16:43 iMostLiked#19
Quote:
Originally Posted by .ƒaℓsє. View Post
Oder man nutzt sofort PDO hat den Code sauber und sicher ohne third party stuff.
Ich denke sauberer als
PHP Code:
$db->where('user''Hans'); //optional
$db->get('table'); 
ist es nicht, also macht man mit diesem third party stuff garantiert nichts falsch, zumal es auch nicht aus Anhäufungen von Dateien besteht. Ist einfacher und genauso sicher.
05/29/2018 17:52 False#20
Quote:
Originally Posted by iMostLiked View Post
Ich denke sauberer als
PHP Code:
$db->where('user''Hans'); //optional
$db->get('table'); 
ist es nicht, also macht man mit diesem third party stuff garantiert nichts falsch, zumal es auch nicht aus Anhäufungen von Dateien besteht. Ist einfacher und genauso sicher.
Naja... mit PDO schreibe ich das SQL binde meine values wenn vorhanden und fertig.
Gerade bei komplexeren Sqls wirst du Probleme bekommen mit der Klasse (gehe ich mal davon aus).
Ebenso wirst du große Probleme bekommen wenn das Projekt mal umgestellt werden sollte, da soweit ich weiß mysqli nur mysql unterstützt.
PDO wiederum unterstützt einige Treiber z.b. für sqlite, somit habe ich eine Code Änderung von ca 1-10 Zeilen.

€: Ebenso hast du nachteile in deiner IDE, das einige Features nicht funktionieren z.b. Autovervollständigen.
05/29/2018 18:00 DerSchmöller#21
Quote:
Originally Posted by iMostLiked View Post
Ich denke sauberer als
PHP Code:
$db->where('user''Hans'); //optional
$db->get('table'); 
ist es nicht, also macht man mit diesem third party stuff garantiert nichts falsch, zumal es auch nicht aus Anhäufungen von Dateien besteht. Ist einfacher und genauso sicher.
Da gibts aber noch das hier: [Only registered and activated users can see links. Click Here To Register...] ist auch viel umfangreicher als die MySQL PHP Class, die du genannt hattest.
Und du bekommst deinen zwei-zeiler sogar in einen ein-zeiler umgewandelt ;-)
05/29/2018 18:13 False#22
Quote:
Originally Posted by DerSchmöller View Post
Da gibts aber noch das hier: [Only registered and activated users can see links. Click Here To Register...] ist auch viel umfangreicher als die MySQL PHP Class, die du genannt hattest.
Und du bekommst deinen zwei-zeiler sogar in einen ein-zeiler umgewandelt ;-)
Mag sein das diese Lib besser ist als die von iMostLiked, dennoch überwiegen die Nachteile.
- Thirdparty (Gerade beim umsteigen auf neuen PHP-Versionen ggf. ein großes Problem)
- Bei Komplexen Sqls wird es unübersichtlicher
- Fehlende/Nicht funktionierende IDE Features...
- etc.
06/19/2018 12:25 Woooty#23
Brauchst du noch Hilfe hierbei? Falls ja, meld dich mal per PM.
09/02/2018 20:42 saixo#24
Würde dir sicherheitstechnisch empfehlen dbo und prepared statements zu verwenden.

Sich einzulesen würde auch helfen, da code der nur funktioniert, aber nicht sicher ist total suckt ^^

[Only registered and activated users can see links. Click Here To Register...]

Grüße