|
|
phpBB2 by Przemo
Support forów phpBB2 modified by Przemo
|
|
Zamknięty przez: Matteo 01-06-2012, 19:22 |
[dodatek] Hash hase? sol? |
Autor |
Wiadomość |
tartut
Pomógł: 18 razy Posty: 190
|
Wysłany: 29-12-2011, 13:48 [dodatek] Hash haseł solą
|
|
|
Kod: | ##############################################################
## MOD Title: Hash haseł solą
## MOD Author: Tartut tartut@o2.pl http://www.przemo.org/phpBB2/forum/profile.php?mode=viewprofile,u,29980
## MOD Description: Modyfikacja hashuje hasła z solą. Jest kompatybilna wstecz, dzięki temu użytkownicy którzy
## hasło mają zakodowane bez soli zalogują się i będą mieli możliwość zmiany hasła.
##
## Installation Level: (Easy)
## Installation Time: 5 Minutes
## Files To Edit (5):
## login.php
## admin/admin_users.php
## language/lang_polish/lang_profile.php
## includes/constants.php
## includes/usercp_register.php
## Included Files: (1)
## incluse/functions_hash.php
##
############################################################## |
Stworzyłem modyfikację poprawiającą bezpieczeństwo haseł użytkowników. Modyfikacja ta hashuje hasła z solą globalną i solą unikalną, czyli każdy użytkownik ma własną do konta przypisaną sól. Sól globalna jest ustalona przez administratora forum. Logowanie będzie działać ze starą metodą hashowania, ale użytkownik po zalogowaniu otrzyma komunikat proszący o zmianę hasła.
Jeżeli ktoś nie wie o co chodzi z solą:
Sól (ang. salt) w kryptografii dane dodawane podczas szyfrowania.
Ważne, to trzeba wykonać!
W pliku includes/constants.php w linijce:
Cytat: | define('SALT', ' '); |
Pomiędzy apostrofami należy podać hasło, im więcej znaków tym lepiej. Musi ono być ze specjalnymi znakami, a nie typu mojastrona.pl. Zalecam o długości ponad 32 znaki.
Hasło te dodajesz raz i więcej nie zmieniasz!
Sądzę że będą osoby które mogą się przyczepić o hashowanie, ale po prostu tak chciałem zrobić. W pliku function_hash.php można zmienić metodę hashowania z solą, ale to dla bardziej zaawansowanych
1 stycznia poprawiona instrukcja, błąd powstawał podczas rejestracji. Użytkownicy którzy się zarejestrowali się po zainstalowaniu tej modyfikacji, trzeba im zmienić hasła poprzez PA! Z zaistniałej sytuacji przepraszam.
2 stycznia poprawiona instrukcja poprzez użytkownika phpbb |
_________________ Pomoc poza forum odpłatna! |
Ostatnio zmieniony przez tartut 02-01-2012, 17:13, w całości zmieniany 3 razy |
|
|
|
|
Gadatliwa Kasia
|
|
|
|
phpbb
Pomógł: 2 razy Posty: 7
|
Wysłany: 01-01-2012, 18:37
|
|
|
Po zainstalowaniu modyfikacji oraz zmianie haseł które mają znaki specjalne typu @#$%^&*(){} itp, nie można się zalogować. Inaczej mówiąc w nowych hasłach można używać tylko znaków alfanumerycznych. (a-z, 0-9) |
|
|
|
|
tartut
Pomógł: 18 razy Posty: 190
|
Wysłany: 01-01-2012, 19:44
|
|
|
jeżeli ktoś już zainstalował tę modyfikację przed 1 stycznia 2012 godz. 19.40 to niech wykona tę instrukcję:
Kod: |
#
#-----[ Otwórz ]------------------------------------------
#
includes/usercp_register.php
#
#-----[ Znajdź ]------------------------------------------
#
$sql = "INSERT INTO " . USERS_TABLE . " (user_id, username, user_regdate, user_password, user_email,
#
#-----[ Dodaj przed ]------------------------------------------
#
$row['user_salt'] = ($row['user_salt'] == '') ? hash_usersalt($username, SALT) : $row['user_salt'];
#
#-----[ Znajdź ]------------------------------------------
#
$sql = "INSERT INTO " . USERS_TABLE . " (user_id, username, user_regdate, user_password, user_email,
#
#-----[ Znajdź w linii ]------------------------------------------
#
user_password,
#
#-----[ Dodaj w linii za ]------------------------------------------
#
user_salt,
#
#-----[ Znajdź ]------------------------------------------
#
, '" . str_replace("\'", "''", $new_password) . "',
#
#-----[ Dodaj w linii za ]------------------------------------------
#
'". $row['user_salt'] ."',
|
instrukcja w pierwszym poście zaktualizowana
błąd występował podczas rejestracji |
_________________ Pomoc poza forum odpłatna! |
|
|
|
|
phpbb
Pomógł: 2 razy Posty: 7
|
Wysłany: 02-01-2012, 00:10
|
|
|
kolego tartut dzięki za pomoc na pm, jednak ja nadal miałem problem z logowaniem i nie chodzi tutaj już o znaki specjalne, po rejestracji nowego konta z hasłem 'zzz' nie można było się zalogować. Gdyby ktoś miał problemy podaje co należy zrobić.
Po zainstalowaniu moda ZNAJDŹ:
Kod: | $new_password = hash_password($cur_password, $row['user_salt'], SALT); |
ZAMIEŃ NA
Kod: | $new_password = hash_password($new_password, $row['user_salt'], SALT);
|
Następny problem był z edycją profilu przez użytkownika. Kiedy użytkownik chciał zmienić podpis, awatar i inne rzeczy poza hasłem, w bazie 'user_salt' zmieniał wartość na ' ' (pustą), aby uniknąć takiej sytuacji należy:
ZNAJDŹ
Kod: | $sql = "UPDATE " . USERS_TABLE . "
SET " . $username_sql . $passwd_sql . "user_salt = '".$row['user_salt']." |
DODAJ PRZED
Kod: | $row['user_salt'] = ($row['user_salt'] == '') ? hash_usersalt($username, SALT) : $row['user_salt']; |
Polecam modyfikację, ponieważ wiem, że są sposoby aby wyciągnąć MD5 z bazy. Rozszyfrować hasło przy pomocy tęczowych tablic też nie jest trudno. |
|
|
|
|
tartut
Pomógł: 18 razy Posty: 190
|
Wysłany: 02-01-2012, 17:10
|
|
|
@up
warto dodać żeby to wykonać w pliku includes/usercp_register.php
Dzięki za poprawki
Aktualizacja paczki! |
_________________ Pomoc poza forum odpłatna! |
|
|
|
|
Seba123
Pomógł: 74 razy Posty: 868
|
Wysłany: 23-02-2012, 23:25
|
|
|
Proponuję użyć dodatkowo np. sha1 niż md5. |
_________________ Fejs |
|
|
|
|
Boltex
Pomógł: 475 razy Posty: 2239
|
Wysłany: 29-03-2012, 13:23
|
|
|
Westbam, jest ona ciągle testowana. |
_________________
Nie pisz do mnie na PW/GG, chyba że o to poproszę | Zanim cokolwiek napiszesz radzę zapoznać się Regulaminiem | Przed założeniem nowego tematu sprawdź czy podobny temat już istnieje
Odpowiedź na większość pytań możesz znaleźć TUTAJ lub w FAQ | Poza forum pomagam tylko odpłatnie | Projekt subSilver2.0 - dołącz do nas! |
|
|
|
|
Gadatliwa Kasia
|
|
|
|
tartut
Pomógł: 18 razy Posty: 190
|
Wysłany: 29-03-2012, 18:29
|
|
|
Błąd który znalazł phpbb został poprawiony, teraz modyfikacja działa poprawnie, ale jeżeli chcesz to możesz przetestować i sprawdzić jak działa na testowym forum. Na razie nikt się nie skarżył że modyfikacja działa niepoprawnie.
Cytat: | Czy hasło które wpisze w pliku includes/constants.php będę musiał pamiętać i czy będę go musiał gdzieś jeszcze użyć w przyszłości? (jedno z drugim się wiąże) |
Ty nie będziesz musiał go używać, ustawiasz raz i musi takie zostać, bo potem nie będzie działać logowanie dla starych użytkowników. Ale jeżeli boisz się że np. że ktoś ci się włamie na ftp i skasuje constants.php to możesz zapisać lub zapamiętać te hasło. |
_________________ Pomoc poza forum odpłatna! |
|
|
|
|
|
Nie możesz pisać nowych tematów 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 Nie możesz ściągać załączników 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,09 sekundy. Zapytań do SQL: 12 | |
|
|