Forenwechsel --> IPB V4 --> WBB4.1 ; Importer genutzt, Passwörter gehen nicht *Dringend*

  • Hallo lieber Support.

    Ich habe mein Forum offline genommen um in einer "Nacht- und Nebelaktion" die Software von IPB 4 auf WBB 4.1 zu wechseln.

    Zum Contentübertrag habe ich den Importer in der neusten Version genutzt.
    Dies hat alles sehr gut funktioniert, sämtliche Inhalte wurden zufriedenstellend übernommen.

    Schlimmes Erwachen jedoch bei dem Versuch einer Anmeldung mit einem importierten Nutze.
    Die Passwörter werden nicht erkannt.

    Ein wenig Ursachenforschung ließ das Problem schnell einkreisen: IPB 4 verwendet eine andere Verschlüsselung als WBB 4.1 und diese wird nicht übernommen.
    In der neuen Datenbank steht überall auch ein "ipb3:" vor dem Hash. Warum? Ich habe doch von ipb4 importiert.


    Quote

    /** * Validates the password hash for Invision Power Board 3.x (ipb3). * * @param string $username * @param string $password * @param string $salt * @param string $dbHash * @return boolean */ protected static function ipb3($username, $password, $salt, $dbHash) { return self::secureCompare($dbHash, md5(md5($salt) . md5($password))); }

    Wäre es möglich das an IPB4 anzupassen?

    Ich wäre Ihnen wirklich sehr dankbar wenn sich hier eine schnelle Lösung finden würde.
    Meine Mitlglieder aufzuordern ein neues Passwort anzufordern ist defintiv keine Option.
    Zu lange Down-Zeiten meines Forums sind ebenso nicht erstrebenswert.

    Ich finde es sehr schade, dass man auf dieses Problem nicht vorher hingewiesen wird.

    Ich hoffe und bitte um eine schnelle Lösung.

    Vielen Dank.

  • Hallo Achim.


    Zum Thema kann ich mit meinen sehr begrenzten Kenntnissen nicht beitragen. Aber, wenn ich lese, wie dringend und wichtig alles in Deinem Fall ist, überlege ich dann, ob es für Dich eventuell sinnvoll wäre, bei Woltlab direkt ein Ticketsupport zu beantragen. Es sei denn, bei Anbruch des Tages können auch hier Kompetentere als ich es bin sofort aushelfen.

    Freilich wärest Du mit einem Ticket schon eher abgesichert, nehm' ich an. Just my two cents...

    Ich drück' Dir die Daumen.

    Herzlich
    Abifiz

    Meine sehr kluge Signatur befindet sich noch in der Herstellungsphase. Falls keine gravierenden Inkompatibilitätsprobleme auftauchen werden, rechne ich mit ihrer Lieferung für das 1. Quartal 2034. Ich danke Ihnen für Ihr Vertrauen.

  • Ich habe mein Forum offline genommen um in einer "Nacht- und Nebelaktion" die Software von IPB 4 auf WBB 4.1 zu wechseln.

    Das es nicht beim Fehler hilft is, klar aber sowas ist immer wieder erstaunlich.....

    wenn sowas nicht passieren soll.

    Meine Mitglieder aufzufordern ein neues Passwort anzufordern ist defintiv keine Option.
    Zu lange Down-Zeiten meines Forums sind ebenso nicht erstrebenswert.


    Für die Zukunft sowas besser planen und am besten vorher testen.

    Freilich wärest Du mit einem Ticket schon eher abgesichert, nehm' ich an. Just my two cents...

    yaap denn das Forum ist im Grunde von Usern für User.

    Dazu Nachts um 1 Uhr ... da schläft sogar der Support auch mal.

  • Versuchs mal so:

    Ersetze in der Datei wcf/lib/util/PasswordUtil.class.php

    PHP
    protected static function ipb3($username, $password, $salt, $dbHash) {
    	return self::secureCompare($dbHash, md5(md5($salt) . md5($password)));
    }


    durch:

    In der neuen Datenbank steht überall auch ein "ipb3:" vor dem Hash. Warum? Ich habe doch von ipb4 importiert.


    Der Prefix ist im Prinzip der Methodenname im PasswordUtil. Dass dort also ipb3 steht liegt daran, dass es offiziell noch keine Methode namens ipb4 gibt.

    PS: Der obige Code ist nur eine Idee. Genauer kann ich dir das nur sagen, wenn ich weiß, was genau in der Datenbank steht (sollte der o.g. Code nicht funktionieren), da ich IPB4 nicht kenne.

  • Hallo Abifriz,

    vielen Dank für deinen Ratschlag.
    Tickets empfinde ich als "egoistisch" wenn es die Möglichkeit dieses tollen Forums hier gibt wo der Support auch rein schaut und antwortet.

    Es kann schließlich irgendwann auch mal andere User mit dem gleichen Problem geben und diese freuen sich dann wenn es hier im Forum schon eine Lösung gibt.
    Habe ich das Problem dann statt per Ticket bereits im Forum behandelt, dann freuen sich die anderen User dass sie schnell eine Lösung haben und auch der Support wird entlastet da er das gleiche Problem nicht 2x behandeln muss.

    Danke fürs Daumendrücken. Ein netter Supporter hat ja schon geantwortet :)

    Grüße
    Achim

    Das es nicht beim Fehler hilft is, klar aber sowas ist immer wieder erstaunlich.....
    wenn sowas nicht passieren soll.

    Für die Zukunft sowas besser planen und am besten vorher testen.

    yaap denn das Forum ist im Grunde von Usern für User.
    Dazu Nachts um 1 Uhr ... da schläft sogar der Support auch mal.

    Hallo Annothelk,

    dein Beitrag macht irgendwie den Eindruck von "Ich habe zwar nicht zu sagen aber ich will trotzdem meinen Senf dazu abgeben".

    Vielleicht hast Du in meinem Eingangspost überlesen, dass es von Woltlab keine Information zu dieser möglichen Problematik gab. Der geneigte Leser könnte daraus schließen, dass ich mich zuvor informiert habe welche Daten importiert werden können.
    Von einem Sprung ins Blaue kann daher keine Rede sein.
    Und grundsätzlich solten die Auskünfte eines Supports verlässlich sein, d.h. wenn mir gesagt wird bei einem Wechsel von IPB4 zu WBB 4.1 können die Benutzer unproblematisch übertragen werden, dann sollte ich mich darauf verlassen können was einen Test m.E. überflüssig macht.

    Das Forum ist nicht nur von Usern für User, sondern von der Woltlab-Community für die Woltlab-Community und zu dieser gehören auch die offiziellen Supporter. Schließlich unterstützen sie ja hier.
    Ich beziehe mich ansonsten auf meinen obigen Beitrag. Ein Forenpost hilft meist auch anderen Usern mit ähnlichen/dem gleichen Problem.
    Ich habe schon für viele Probleme Lösungen im Forum gefunden und musste so nicht auf eine Antwort bei einem Ticket warten und der Support musste auch nicht nochmal Fragen beantworten die schon abgearbeitet wurden.
    Deine Kritik verstehe ich daher nicht.

    Abschließend: Ist es verboten um 1 Uhr Nachts hier im Forum zu schreiben? Ich wüsste nicht dass ich irgendwie geschrieben habe dass ich noch in der Nacht eine Antwort haben möchte. Es ist doch vollkommen logisch, dass diese erst am nächsten Tag erfolgt. Dennoch kann man doch mit dem Wort -Dringend- die Priorität seiner Anfrage etwas erhöhen.

    Trotzdem vielen Dank für deine Zeilen.
    Achim


    ----------------------------------------------------
    ----------------------------------------------------
    Bitte kein weiteres Offtopic mehr. Danke.
    ----------------------------------------------------
    ----------------------------------------------------

    Versuchs mal so:

    Ersetze in der Datei wcf/lib/util/PasswordUtil.class.php

    PHP
    protected static function ipb3($username, $password, $salt, $dbHash) {
    	return self::secureCompare($dbHash, md5(md5($salt) . md5($password)));
    }

    durch:

    Der Prefix ist im Prinzip der Methodenname im PasswordUtil. Dass dort also ipb3 steht liegt daran, dass es offiziell noch keine Methode namens ipb4 gibt.

    PS: Der obige Code ist nur eine Idee. Genauer kann ich dir das nur sagen, wenn ich weiß, was genau in der Datenbank steht (sollte der o.g. Code nicht funktionieren), da ich IPB4 nicht kenne.

    Hallo SoftCreatR,

    vielen Dank für deine super schnelle Antwort und das Aufzeigen einer möglichen Lösung.
    Sobald getestet werde ich eine Rückmeldung geben :)

    Liebe Grüße
    Achim

  • Und grundsätzlich solten die Auskünfte eines Supports verlässlich sein, d.h. wenn mir gesagt wird bei einem Wechsel von IPB4 zu WBB 4.1 können die Benutzer unproblematisch übertragen werden, dann sollte ich mich darauf verlassen können was einen Test m.E. überflüssig macht.

    Nein ein guter Admin hat eine Testumgebung oder legt diese an und macht keine "Nacht und Nebelaktionen"

    Das Forum ist nicht nur von Usern für User, sondern von der Woltlab-Community für die Woltlab-Community

    ähm wo soll da der Unterschied sein? Da hier nur "Kunden" schreiben können sind diese User eben diese Community

    Abschließend: Ist es verboten um 1 Uhr Nachts hier im Forum zu schreiben?

    nein aber deine Überschrift lässt erwarten das du sofort auch Support haben willst. Stell dir nun mal vor jeder hängt ein "Dringend" "Wichtig" "Schnell" an seine Überschriften?

    Dennoch kann man doch mit dem Wort -Dringend- die Priorität seiner Anfrage etwas erhöhen.

    Nein dafür gibt es den Ticketsupport. Siehe Antwort eins höher.

  • Versuchs mal so:

    Ersetze in der Datei wcf/lib/util/PasswordUtil.class.php

    PHP
    protected static function ipb3($username, $password, $salt, $dbHash) {
    	return self::secureCompare($dbHash, md5(md5($salt) . md5($password)));
    }

    durch:

    Der Prefix ist im Prinzip der Methodenname im PasswordUtil. Dass dort also ipb3 steht liegt daran, dass es offiziell noch keine Methode namens ipb4 gibt.

    PS: Der obige Code ist nur eine Idee. Genauer kann ich dir das nur sagen, wenn ich weiß, was genau in der Datenbank steht (sollte der o.g. Code nicht funktionieren), da ich IPB4 nicht kenne.


    So, das Problem konnte dank des Denkanstoßes und der Codevorlage von SoftCreatR gelöst werden :)

    Dein obiger Code hat zwar nicht funktioniert, aber eine leichte Abwandlung brachte die Lösung.

    Das Problem bei deiner Lösung war, dass man aufgrund von if (isBlowfish ($salt)) nach dem Login einen weißen Bildschirm erhielt und sich nichts mehr rührte.
    Richtig an der Stelle ist self::isBlowfish da es sich hier um eine Mehtode und keine Funktion handelt.

    Die Methode gibt an der Steller allerdings nicht wie erwartet ein true aus, sondern ein false zurück was dann dazu führt, dass die neue und funktioniernede Methoded ipb4 () nicht aufgerufen wird.
    Also habe ich in der Methode ipb3 nur noch return self::ipb4($userbane, $password, $salt, $dbHash); stehen.

    Ich empfehle aber ipb4 ordnungsgemäß in die PasswordUtil zu implimentieren und beim nächsten Update des Importes auch ipb4 statt ipb3 vor die Passwörter zu schreiben.


    Vielen Dank für die schnelle Hilfe.
    Achim.

  • Nachtrag: Des Rätsels Lösung ist weitaus einfacher, als zuerst angenommen. Zumal ich gerade etwas verwundert bin, dass das da oben funktioniert.

    Eine tatsächlich funktionierende Lösung hat heute jedenfalls Einzug in die nächste Version des Importers gehalten: https://github.com/WoltLab/com.wo…r/pull/22/files

    Zwar haben wir festgestellt, dass die Mitgabe des Salt nicht notwendig zu sein scheint, aber das ist eher so ein kosmetisches Ding. Die Lösung jedenfalls habe ich mit einem IPS 4.1.11 erfolgreich getestet.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!