|
|
phpBB2 by Przemo
Support forów phpBB2 modified by Przemo
|
|
Zmuszenie 1.12.7 do zapisywania hasła także w zwykłym md5 |
Autor |
Wiadomość |
Kosimus
Pomógł: 1 raz Posty: 60
|
Wysłany: 10-09-2012, 01:09 Zmuszenie 1.12.7 do zapisywania hasła także w zwykłym md5
|
|
|
Mam zbudowany mały system złożony z forum Przema, z Mantisa (bugtracker) i MRBS (skrypt do rezerwacji pomieszczeń, sprzętu itp.). Nie są zintegrowane z forum w pełnym tego słowa znaczeniu, ale korzystałem z tego, że wszystkie używają zwykłego, niesolonego md5 do zapisywania haseł. A raczej tak było do update do 1.12.7.
Problem polega na tym, że do bazy danych forum podpięte są pozostałe dwa skrypty. Po prostu pobierają sobie zeń użytkowników i hasła. I w tej chwili, po update do 1.12.7 wszystko wzięło w łeb, bo nie mamy już czystego md5 w hasłach, zatem pobrane dane z bazy forum nie działają w MRBS i Mantisie.
Potrzebuję więc zmusić forum, by oprócz obecnego zapisu hasła, nadal tworzyło także zapis w zwykłym md5. Jakieś dodatkowe pole w tabeli phpbb_users byłoby okej. Tak chyba będzie najprościej. Mam kopię bazy sprzed aktualizacji, więc mogę wpisać stare wartości md5 ręcznie do nowego pola, ale forum powinno także aktualizować hasło w nowym polu md5 w kilku przypadkach:
1. User zmienia hasło.
2. User używa przypomnienia hasła.
3. Rejestruje się nowy użytkownik.
4. Admin zmienia hasło.
Jakieś propozycje gdzie i jaki kod wstawić? |
_________________ "Alt" nie jest twoim wrogiem! Używanie polskich znaków naprawdę nie boli! |
|
|
|
|
Gadatliwa Kasia
|
|
|
|
maminowiec
Pomógł: 551 razy Posty: 1729
|
Wysłany: 10-09-2012, 11:49
|
|
|
A nie lepiej zmienić sprawdzanie tych haseł (na obecny system Przemo) w MRBS i Mantisie ? |
_________________ Ebooki do pobrania |
|
|
|
|
Kosimus
Pomógł: 1 raz Posty: 60
|
Wysłany: 10-09-2012, 12:34
|
|
|
Wtedy musiałbym modyfikować dwa skrypty zamiast jednego, więc raczej nie .
[ Dodano: 12-09-2012, 11:21 ]
Looknąłem w funkcje i zmieniłem zdanie . Prościej będzie zmusić MRBS do współpracy :p. Dodałem nowy rodzaj logowania przez zewnętrzną bazę:
Kod: | function authValidateUser($user, $pass)
{
global $auth;
$retval = 0;
$user = strtolower($user);
if (empty($auth['db_ext']['db_system']))
{
$auth['db_ext']['db_system'] = 'mysql';
}
$conn = sql_connect($auth['db_ext']['db_system'],
$auth['db_ext']['db_host'],
$auth['db_ext']['db_username'],
$auth['db_ext']['db_password'],
$auth['db_ext']['db_name']);
$user = addslashes($user);
$query = "SELECT " . $auth['db_ext']['column_name_password'] .
" FROM " . $auth['db_ext']['db_table'] .
" WHERE ". $auth['db_ext']['column_name_username'] . "='$user'";
$r = sql_query($query, $conn);
if ($r && (sql_count($r, $conn) == 1)) // force a unique match
{
$row = sql_row($r, 0, $conn);
switch ($auth['db_ext']['password_format'])
{
//Tu się zaczyna to, co sam dodałem
case 'phpbb':
$itoa64 = './0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
if($pass == '' || is_array($pass)) { return 0; }
if (strlen($hash) == 34)
{
return (_hash_crypt_private($pass, $hash, $itoa64) === $hash) ? 1 : 0;
}
{
$retval = 1;
}
//return 0;
break; |
Problem polega na tym, że w ten sposób można się zalogować podając dowolne hasło. Co zrobić, by działało tylko poprawne hasło? |
_________________ "Alt" nie jest twoim wrogiem! Używanie polskich znaków naprawdę nie boli! |
|
|
|
|
|
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach Nie możesz załączać plików na tym forum Możesz ściągać załączniki na tym forum
|
Dodaj temat do Ulubionych Wersja do druku
|
Kopiowanie wszelkich treści zawartych na forum, modyfikacji oraz instrukcji bez zgody administracji i autorów tematów/postów zabronione!
Powered by phpBB modified by Przemo © 2003 phpBB
| Strona wygenerowana w 0,06 sekundy. Zapytań do SQL: 13 | |
|
|