[gelöst] Logindaten zerstört // old-style MD5 hash

Hier können Probleme und alles andere in Deutscher Sprache gelöst werden.
Post Reply
snafu
Regular
Posts: 108
Joined: Sat Dec 17, 2005 7:34 am

[gelöst] Logindaten zerstört // old-style MD5 hash

Post by snafu »

Hallo zusammen,

(Ich mußte das Forum schon Jahre nicht mehr benutzen, weil S9Y so snappy läuft, aber jetzt muss es doch mal sein :)

Blog betrieben mit Serendipity 1.5.5 und PHP 5.2.12-nmm2
Manche meiner User bekommen die Meldung beim Login:

"You can no longer login with an old-style MD5 hash to prevent MD5-Hostage abuse. Please ask the Administrator to set you a new password."

Ich habe dazu eine Lösung gefunden: "please check the row of the corresponding user. He should have the "hashtype" column set to "1"? If not, you can try to set it to 1 and then reset his password". Getestet, geht, aber dazu müsste ich alle ca. 200 betroffenen User-Einträge einzeln anfassen *und* deren Passwort neu setzen!

Meine Fragen:

- Gibt es einen automatisieren Weg, dieses Problem zu beheben?
- Warum sind manche (scheinbar die ältesten) User nicht betroffen?
- Was ist die Ursache für diesen Fehler?

Ganz herzlichen Dank,
snafu,

http://kassel-zeitung.de/
Last edited by snafu on Fri Mar 16, 2012 4:55 pm, edited 1 time in total.
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Re: Logindaten zerstört // old-style MD5 hash

Post by garvinhicking »

Hi!

Vor rund 2 Jahren haben wir s9y umgestellt auf neue Loginhashes. Damit die User nicht aus dem System ausgesperrt sind, wurden weiterhin deren Cookies akzeptiert, im dem Glauben dass sich jemand irgendwann mal abmelden und dann neu anmelden wird.

Da die "Karenzzzeit" für diese User nun überschritten ist (diese haben sich nie neu eingemeldet bzw. sich einen neuen Cookie bauen lassen) musst Du nun als Admin hingehen und in der Benutzerverwaltung den Accounts ein neues PAsswort zuweisen. Damit können die sich dann temporär einloggen und dann ihr neues Passwort in den eigenen Einstellungen vergeben.
- Gibt es einen automatisieren Weg, dieses Problem zu beheben?
Nein, denn dafür müssten die Passwörter im Klartext vorliegen. Man könnte jedoch per PHP-Script jedem User automatisch ein neues Passwort zuweisen, über die serendipity_hash() function und entsprechende SQL UPDATE befehle für die serendipity_authors Datenbanktabelle:

Code: Select all

<?php
include 'serendipity_config.inc.php';
$passwort = "NeuesPasswort";
$benutzer = 'snafu';
$mail       = 'snafu@example.com';

serendipity_db_query("UPDATE {$serendipity['dbPrefix']}authors SET password = '" . serendipity_hash($passwort) . '" WHERE username = '" . $benutzer . "'");
mail($mail, 'Dein Passwort', 'Ist jetzt: ' . $passwort);
(Pseudocode).

Notfalls könntest Du auch in der serendipity_options Datenbanktabelle den Wert für das Attribut "hashkey" auf einen aktuellen Unix-Timestamp setzen, dann setzt Du die Karrenzzeit nochmal entsprechend höher. Dann kannst Du die User auch auffordern, mal ein neues Passwort zu setzen...


Viele Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
snafu
Regular
Posts: 108
Joined: Sat Dec 17, 2005 7:34 am

Re: Logindaten zerstört // old-style MD5 hash

Post by snafu »

Hi Garvin!

Herzlichen Dank für die ausführliche Antwort. Jetzt weiss ich woran es liegt (und vermute keine Störung mehr): Die betreffenden User waren also ca. 2 Jahre nicht angemeldet, quasi Karteileichen. Ich denke, ich werde die betreffenden Accounts einfach löschen, und die User informieren.

Die Karrenzzeit nochmal zu erhöhen werde ich wohl nicht versuchen, dann tritt das selbe Problem einfach nur später auf.

An dieser Stelle nochmal einen persönlichen Dank für deine und aller Helfer Arbeit - unsere freie Zeitung läuft seit > 5 Jahren absolut einwandfrei dank S9Y!

Herzliche Grüße
Snafu
Post Reply