PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Password Probleme nach MYSQL Upgrade



concholio
17-01-2007, 11:35
Hallo,

unser Hoster hat vor kurzem die mysql Version auf seinen servern von 4 auf 5 geupgradet.
Auf dem Space liegt eine db die mittels Webinterface administriert wird.
Nun besteht folgendes Problem das es uns seit dem Upgrade die Administration über das Webinterface nicht mehr möglich ist, da bei der Authentifizierung das Passwort nicht erkannt wird. (eine Ausnahme gibt es, wenn man dem dem user kein password zuweißt ist es möglich sich auch wieder über das Webinterface einzuloggen, aber auch nur dann)
Über phpmyadmin lassen sich aber nach wie vor alle Einstellungen einwandfrei verändern.

Wir sind ehrlich gesagt ganz schön ratlos, da wir nicht nachvollziehen können was der hoster da verändert hat, der support ist leider auch nicht das wahre.
Ich gehe jetzt davon aus das der Hoster die configs verändert hat und es damit zusammenhängt.Aber n richtig Reim kann ich mir nciht drauf machen.

Kennt denn jemand dieses Problem, oder hat irgendwelche Lösungansätze.

Würde mich sehr darüber freuen.

mfg concholio

Waxolunist
17-01-2007, 13:46
Also man kann sich anmelden ohne Passwort, jedoch sobald ein Passwort an den entsprechenden User vergeben wird geht es nicht mehr?
Oder ist das nur beim Admin-Account so?

Klingt irgendwie nach einem Charsetproblem.

Meinst du mit Webinterface phpMyAdmin?

mfg, christian

concholio
17-01-2007, 20:33
Also das mit dem Charset werd ich morgen überprüfen, werd ich heute nicht mehr schaffen. Danke schonmal!

Bei der DB handelt es sich um eine Artikel Datenbank, bei der User Artikel,Kommentare etc einsenden können.
Dazu habe ich ein Admin-Webinterface in php geschrieben, das allen Moderatoren ermöglicht die Datenbank auf einfach Weise zu administrieren, ohne phpmyadmin verwenden zu müssen.

Ich als Admin kann die Datenbank nach wie vor ohne Probleme per phpmyadmin bearbeiten, was jedoch um einiges umständlicher ist als mit dem angepassten Admin-Webinterface.
Da die Datenbank noch im Aufbau ist besitzen bisher nur die Moderatoren Useraccounts, damit diese sich in das Admin Interface einloggen können.
Betritt man das Admin Interface kommt zuerst das Loginfenster.
Und hier tritt seit dem Upgrade der mysql Version der Fehler auf das keine Passworter akzeptiert werden(außer man vergibt keins).
Passwort natürlich per phpmyadmin verändert und getestet aber es kommt immer wieder nur erneut das Loginfenster da das pw nicht akzeptiert wird.
Habe auch mit neu angelegtem Useraccount versucht und habe die komplette User Tabelle gelöscht und nochmal neu erstellt, was aber auch keine Abhilfe brachte.

mfg concholio

Waxolunist
18-01-2007, 10:49
Was wird denn in die DB geschrieben als Passwort?

Ich nehme an irgendein Hash. Ist das auch derselbe Hash, der zum Vergleich hin übertragen wird? Hat sich der Hashing-Algorithmus geändert?

Das liegt an der Applikation und weniger an der DB.

mfg, christian

concholio
18-01-2007, 22:54
Ja das PW wird verschlüsselt in der DB abgespeichert.

Hier mal der Quelltext von der Authentifizierung:


<?php

$authorized = FALSE; // Initialize a variable.

// Check for authentication submission.
if ( (isset($_SERVER['PHP_AUTH_USER']) AND isset($_SERVER['PHP_AUTH_PW'])) ) {

include('../docs/config.php');

// Query the database.
$query = "SELECT first_name FROM users WHERE username='{$_SERVER['PHP_AUTH_USER']}' and password=PASSWORD('{$_SERVER['PHP_AUTH_PW']}')";
$result = mysql_query ($query);
$row = @mysql_fetch_array ($result);
if ($row) { // If a record was returned...
$authorized = TRUE;
}
}

// If they haven't been authorized, create the pop-up window.
if (!$authorized) {
header('WWW-Authenticate: Basic realm="articlebase"');
header('HTTP/1.0 401 Unauthorized'); // For cancellations.
exit;
}
?>

mfg concholio

Waxolunist
19-01-2007, 09:53
Bin jetzt kein PHP-Spezialist, aber diese Zeile scheint mir schon verdächtig:


username='{$_SERVER['PHP_AUTH_USER']}' and password=PASSWORD('{$_SERVER['PHP_AUTH_PW']}')

Gib mal diesen Query aus:


SELECT username, password, first_name FROM users WHERE username='{$_SERVER['PHP_AUTH_USER']}'

Wenn möglich von einem Benutzer der nur einmal mit username in der DB vorkommt.

Dann mach mal eine Augenkontrolle der beiden Variablen password aus der DB und der Variable PASSWORD('{$_SERVER['PHP_AUTH_PW']}').

Stimmen die überhaupt überein?

mfg, Christian