Hallo an alle,

ich hoffe ich mache nichts falsch, das hier ist mein erste Mail an eine Mailingliste.

Bei mir läuft:
TYPO3 4.7.1
mit felogin 4.7.1
und felogin_security 0.0.1

Ich möchte FE-Nutzer ausschließlich über das Backend anlegen können, das "funktioniert" auch. Wenn ich einen Testnutzer mit dem Passwort "hallo" im Backend anlege, steht in der Datenbank in der Passwortspalte "$1$OsjLcQFF$Zr3XF.HIGPZ8bG3sYLgy/."das scheint gesalted zu sein, denn es ändert sich auch bei jedem abspeichern. Aber ich finde das salt nicht. Wo könnte es sein? Hab nur eine tx_rsaauth_keys gefunden, dort ist aber nur ein Eintrag drin, ich habe aber zwei FE-User.

Außerdem habe ich, nach fehlgeschlagenem Login versucht, mal den Weg der Logindaten zu gehen und bin dann in der Datei t3lib_userAuth gelandet. Dort kommen die Logineingaben 1:1 an.

(abhängig von aktiviertem JavaScript RSA-Verschlüsselt oder nicht)

Mit JavaScript:
$loginData = array(
'status' => 'login',
'uname' => 'loginname',
'uident' => 'rsa:RwAS+duvVaT/F+MHMUIlFVn9UpE+Q4AOLG7lcp/GD5Fbxncpl4CJPtMMIMCSkCzQL/xaTsmzhzppw5IUKB9ZRMXbGciYmUI6/3QFq5gasD6N/p9Jp1/ghK4y37OrteYnzJleZvASXvTDBhYpHrOIVe+j2RnJO66yzSz+wvLhoR0=',
'chalvalue' => '',
'permanent' => 0
)

Ohne JavaScript:
$loginData = array(
'status' => 'login',
'uname' => 'loginname',
'uident' => 'hallo',
'chalvalue' => '',
'permanent' => 0
)

nach einem Umweg über die class.tx_sv_authbase.php lande ich wieder in der class.t3lib_userauth.php in der methode compareUident().

function compareUident($user, $loginData, $passwordCompareStrategy = '') {

        $OK = FALSE;
$passwordCompareStrategy = $passwordCompareStrategy ? $passwordCompareStrategy : $this->security_level; t3lib_utility_debug::Debug($passwordCompareStrategy, 'passwordcomparestrategy in class.t3lib_userauth'); t3lib_utility_debug::Debug($loginData, 'logindata in compareUident in class.t3lib_userauth'); t3lib_utility_debug::Debug($user, 'user in compareUident in class.t3lib_userauth');
        switch ($passwordCompareStrategy) {
case 'superchallenged': // If superchallenged the password in the database ($user[$this->userident_column]) must be a md5-hash of the original password.
            case 'challenged':

                    // Check challenge stored in cookie:
                if ($this->challengeStoredInCookie) {
                    session_start();
if ($_SESSION['login_challenge'] !== $loginData['chalvalue']) {
                        if ($this->writeDevLog) {
t3lib_div::devLog('PHP Session stored challenge "' . $_SESSION['login_challenge'] . '" and submitted challenge "' . $loginData['chalvalue'] . '" did not match, so authentication failed!', 't3lib_userAuth', 2);
                        }
                        $this->logoff();
                        return FALSE;
                    }
                }

if ((string) $loginData['uident_' . $passwordCompareStrategy] === (string) md5($user[$this->username_column] . ':' . $user[$this->userident_column] . ':' . $loginData['chalvalue'])) {
                    $OK = TRUE;
                }
            break;
            default: // normal
if ((string) $loginData['uident_text'] === (string) $user[$this->userident_column]) {
                    $OK = TRUE;
                }
            break;
        }

        return $OK;
    }

Dort ist:
$passwordCompareStrategy = 'rsa' und somit rennt er in den default-modus wo er einfach das übermittelte Passwort (entweder rsa:... oder 'hallo') mit dem salted hash in der Datenbank abgleicht.

Da kann doch irgendwas nicht richtig sein. Also entweder habe ich das Dingen komplett vor die Wand gesetzt oder aber da ist ein Bug. Wäre für Hilfe sehr dankbar, sollte es ein Bug sein, könnte ich versuchen mich drum zu kümmern (loginData in einem Hook wieder aueinandernehmen und das aus der Datenbank auch, sodass er gerne in den Default: reinkann). Wie ihr aber vielleicht merkt bin ich nicht so erfahren.

Danke schonmal

LG Frederik
_______________________________________________
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Antwort per Email an