• Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

[PHP]Login-SCript für xAuth?

G

GermanUbuntu

Guest
Hallo Leute,

Ich arbeite gerade an einem Login-Script für xAuth
Code:
<?php 
session_start(); 
?> 

<?php 
$verbindung = mysql_connect("localhost", "root" , "") 
or die("Verbindung zur Datenbank konnte nicht hergestellt werden"); 
mysql_select_db("xauth") or die ("Datenbank konnte nicht ausgewählt werden"); 

$username = "BENUTZER"; 
$passwort = "PASSWORT"; 

$abfrage = "SELECT playername, password FROM accounts WHERE playername LIKE '$username' LIMIT 1"; 
$ergebnis = mysql_query($abfrage); 
$row = mysql_fetch_object($ergebnis); 

if(md5($row->password) == $passwort) 
    { 
    $_SESSION["playername"] = $username; 
    echo "Login erfolgreich."; 
    } 
else 
    { 
    echo "Benutzername und/oder Passwort waren falsch."; 
    } 

?>

Doch leider kommt im Moment nur ein fehler:
Benutzername und/oder Passwort waren falsch.

So dann habe ich mall einen Benutzer selber erstellt(ohne Verschlüsselung)

damit klapt das...
was mache ich falsch?
 
G

GermanUbuntu

Guest

Benni1000

Ehemaliges Teammitglied
Ehem. Teammitglied
Registriert
4 Mai 2012
Beiträge
1.396
Diamanten
0
Wie chris schon sagte hast du da eine sql-injection Lücke drin, aber das ist noch nicht alles.
Werte in PHP NIEMALS mit "==" vergleichen, wenn du pech hast castet dir "==" den string zu einer nummer,
und ausserdem vergleicht er unter umständen nicht den ganzen String, benutze IMMER "===" oder eine andere
passende funktion.
http://phpsadness.com/sad/47

Weiters benutzt du die veraltete mysql_ extension, diese wird in kommenden php releases entfernt.
Benutze entweder mysqli_ oder noch besser PDO.

In diesem fall eh hinfällig weil du die xauth daten nutzen musst aber:
Passwörter nur mit md5 zu hashen ist grob fahrlässig, bitte nutze einen passenden algorithmus wie
SHA256, SHA512 oder noch besser Bcrypt. Dann solltest du das passwort mit mehr als einer runde hashen (solltest du nicht bcrypt nutzen), hashe es mit mindestens 10000+ runden. Dann fehlt deinen passwörtern auch noch der Salt, bitte während des hashens immer einen passwortspezifischen salt string zuführen, sonst kann ein Angreifer viel leichter alle Passwörter knacken.
http://security.stackexchange.com/questions/211/how-to-securely-hash-passwords/31846#31846
 
Zuletzt bearbeitet:

TheCreeperFX

Minecrafter
Registriert
27 Dezember 2013
Beiträge
0
Diamanten
0
Da hat der Benni woll recht :-D
Dennoch ist schwer zu verstehen,weil das nicht wirklich geordnet ist.
Beispiel:
Hashe mit 10000+.Dann noch....Achja und während des Hashens musst du....
Naja das wars von mir.
Hat jetzt nicht wirklich was mit dem Problem zutun,aber mir ist das halt aufgefallen.

MFG Creeper
 
Oben