phpBB2 by Przemo
Support forów phpBB2 modified by Przemo

FAQFAQ - PIERWSZA POMOC!!  regulaminREGULAMIN  SzukajSZUKAJ  UżytkownicyUżytkownicy  GrupyGrupy  StatystykiStatystyki
RejestracjaRejestracja  ZalogujZaloguj  DownloadDownload  katalog Forów DyskusyjnychKatalog Forów   FAQ Video tutoriale

Poprzedni temat «» Następny temat
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ć. :P 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!
 
     
Wyświetl posty z ostatnich:   
Ten temat jest zablokowany bez możliwości zmiany postów lub pisania odpowiedzi
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

Skocz do:  

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,07 sekundy. Zapytań do SQL: 13
Polecane serwisy

Najlepsze oprogramowanie do prowadzenia sklepu internetowegoNajlepszy program do sklepu firmowany przez Przem'a

Sklep z gadżetami

mediaclick.pl

serwis laptopów

phpbb

Polisy Ubezpieczeniowe TU Europa

Design Cart - Tworzenie sklepu internetowego

dnirozwoju.pl

Ranking Hostingów HostingOnline.pl

• Zamów reklamę