bug conlib/local.php
Verfasst: Fr 11. Aug 2006, 11:05
damit ich es mal erwähnt hab... wollte eigentlich ganz was anders versuchen aber na ja...
folgendes findet sich mehrfach in conlib/local.php
gut, folgende funktion zum registrieren eigener auth handler gibts da auch noch
tja und der aufruf des handlers erfolgt nur dann wenn das passwort dem handlernamen entspricht...
jetzt komm ich zum bug...
da $pass immer ein md5 kodierter wert ist, kann das hier
if (in_array($pass, $auth_handlers))
nie stimmen...
die funktion müsste dann
function *md5 kodierter wert des handlers* () { }
heissen....
entweder ist das in der doku(Pluggable Authentification) falsch beschrieben, oder der code wurde in der form noch eingesetzt als das pw noch nicht md5 kodiert war...
folgendes findet sich mehrfach in conlib/local.php
Code: Alles auswählen
while($this->db->next_record()) {
$uid = $this->db->f("user_id");
$perm = $this->db->f("perms");
$pass = $this->db->f("password"); ## Password is stored as a md5 hash
if (is_array($auth_handlers))
{
if (in_array($pass, $auth_handlers))
{
$success = call_user_func($pass, $username, $password);
if ($success)
{
$uid = md5($username);
$pass = md5($password);
}
}
}
}
Code: Alles auswählen
/* Registers an external auth handler */
function register_auth_handler($handler)
{
global $auth_handlers;
if (!is_array($auth_handlers))
{
$auth_handlers = array();
}
if (!in_array($handler, $auth_handlers))
{
$auth_handlers[] = $handler;
}
}
jetzt komm ich zum bug...
da $pass immer ein md5 kodierter wert ist, kann das hier
if (in_array($pass, $auth_handlers))
nie stimmen...
die funktion müsste dann
function *md5 kodierter wert des handlers* () { }
heissen....
entweder ist das in der doku(Pluggable Authentification) falsch beschrieben, oder der code wurde in der form noch eingesetzt als das pw noch nicht md5 kodiert war...