Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.38 veröffentlicht (30.04.24)


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste
Mitglieder für anders Login verwenden
#1
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?
#2
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.
#3
Schau mal in die inc/functions_user.php. Dort stehen die entsprechenden Funktionen. Außerdem sollte die Suche bei "salt" einiges finden.
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
#4
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.";
    }

?>
#5
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

Gruß,
Michael
[Bild: banner.png]
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Beiträge anders anzeigen patty-pat 4 2.184 26.05.2009, 20:15
Letzter Beitrag: Andii S.
  "Altes" Quick-Login verwenden ows 3 2.929 26.04.2009, 08:51
Letzter Beitrag: ows