MyBB.de Forum

Normale Version: Mitglieder für anders Login verwenden
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo

Ich möchte meine Forumsmitglieder über ihre Forumszugangsdaten auf eine andere Seite einloggen lassen.

Jedoch habe ich festgestellt, das die Passwörter nicht einfach nur md5 verschlüsselt sind.

Habe folgenden Code der leider nicht funktioniert:
login.php
Code:
<?php
session_start();
?>
<body bgcolor="2d5770">
<?php
$verbindung = mysql_connect("localhost", "username" , "passwort")
or die("Verbindung zur Datenbank konnte nicht hergestellt werden");
mysql_select_db("datenbank") or die ("Datenbank konnte nicht ausgewählt werden");

$username = $_POST["username"];
$password = md5($_POST["password"]);

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

if($row->password == $password)
    {
    $_SESSION["username"] = $username;
    echo '<center><big
style="color: rgb(255, 0, 0);"><big><big><span
style="font-weight: bold;">Login erfolgreich!</span></big></big></big><br>
</div>
<br>
<br><br><center><b>Klicke auf ';
    echo '<br><br><center><b><a href="../index.php" target="_top">weiter</a>' ;
    echo '<br><br><center><b> um fortzufahren!';

    }
else
    {
    echo "<br><br><center><b>Benutzername und/oder Passwort waren falsch.";
    }

?>


Was kann ich machen, damit dies funktioniert?
Der Benutzername ist noch zusätzlich mit einem Salt verschlüsselt, der daneben in der DB steht. Wie man das nachmacht? Frag mich nicht. Aber es ist sicher genug. Soweit ich weiß ist der Salt irgendein generierter Code. Aber dazu kann dir jemand von den Profis mehr dazu sagen.
Schau mal in die inc/functions_user.php. Dort stehen die entsprechenden Funktionen. Außerdem sollte die Suche bei "salt" einiges finden.
Danke an euch beide.

Falls es andere vllt brauchen setze ich den funktionierenden Code nochmal hier ein:

login.php
Code:
<?php
session_start();
?>
<body bgcolor="2d5770">
<?php
$verbindung = mysql_connect("localhost", "benutzername" , "passwort")
or die("Verbindung zur Datenbank konnte nicht hergestellt werden");
mysql_select_db("datenbankname") or die ("Datenbank konnte nicht ausgewählt werden");

$username = $_POST["username"];


$abfrage = "SELECT username, salt, password FROM mybb_users WHERE username LIKE '$username' LIMIT 1";
$ergebnis = mysql_query($abfrage);
$row = mysql_fetch_object($ergebnis);
$password = md5(md5($row->salt).md5($_POST["password"]));
if($row->password == $password)
    {
    $_SESSION["username"] = $username;
    echo '<center><big
style="color: rgb(255, 0, 0);"><big><big><span
style="font-weight: bold;">Login erfolgreich!</span></big></big></big><br>
</div>
<br>
<br><br><center><b>Klicke auf ';
    echo '<br><br><center><b><a href="../index.php" target="_top">weiter</a>' ;
    echo '<br><br><center><b> um fortzufahren!';

    }
else
    {
    echo "<br><br><center><b>Benutzername und/oder Passwort waren falsch.";
    }

?>
Ein wichtiger Hinweis: Dein Code erlaubt SQL-Injektion, d.h. die Datenbankabfragen können manipuliert werden.

Ersetze
PHP-Code:
$abfrage "SELECT username, salt, password FROM mybb_users WHERE username LIKE '$username' LIMIT 1"
durch
PHP-Code:
$abfrage "SELECT username, salt, password FROM mybb_users WHERE username LIKE '".mysql_real_escape_string($username)."' LIMIT 1"
Siehe: http://de.wikipedia.org/wiki/SQL-Injection