Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Haszowanie hasła przed wysłaniem ?
Forum PHP.pl > Forum > PHP
blade-mrn
Witam,
Szukam rozwiązania następującego problemu, mianowicie robię prosty system logowania który składa się ze strony z formularzem (login i hasło) i pliku dokonującego weryfikacji podanych danych przekazanych z formularza za pomocą post-a. Cały problem polega na tym, że zarówno login jak i hasło są wysyłane otwartym tekstem i można je przechwycić każdym sniferem. Czy da się zrobić tak aby hasło i login były haszowane jeszcze przed wysłaniem ich postem questionmark.gif
Pozdrawiam blade-mrn
MWL
Jeśli chodzi o login, będzie ciężko, bo i tak zawsze to można odczytać, chyba że wprowadzisz jakiś system szyfrowania loginu w bazi danych, albo coś. W każdym razie jeśli chodzi o hasło, to oczywiście, możesz zrobić to za pomocą javascriptu. Zastanów się jednak czy każdy user ma włączony JS, ew. wprowadź informację o tym że js jest wymagany. Przechodząc do rzeczy tu: masz to w js http://www.uw-team.org/dekoder.html poprzeglądaj sobie kod...
kufalo
Zahashowane haslo rowniez mozna przechwycic sniferem - efekt bedzie ten sam, bedzie sie mozna zalogowac do systemu wysylajac odpowiednie zapytanie POST posiadajac ten hash.

Hashowanie loginu to sredni pomysl. Moze sie zdarzyc przypadek ze otrzymasz ten sam hash dla dwoch roznych loginow, a nie mozesz na to pozwolic.

Do takich rzeczy jest SSL.
Sabistik
Żeby szyfrowanie hasła przed wysłaniem miało sens musisz zastosować kryptografie asymetryczną. Wtedy będziesz miał pewność co do skuteczności przed sniferami.
ucho
Jak jest napisane wyżej żadne zabawy z loginem nie mają sensu. Ale jeśli naprawdę nie masz dostępu do SSL to z hasłem przy logowaniu da się coś zrobić, tylko wymaga to dużo dodatkowej roboty. Do formularza musisz dołączyć _jednorazowy_ ticket (np. jakiś losowo wygenerowany ciąg znaków) i dodać go do hasła przed hashowaniem. Po stronie serwera postępujesz identycznie. Podobnie działa http://en.wikipedia.org/wiki/Digest_access_authentication . Darmowe implementacje sha1/2 w JS są na pewno gdzieś dostępne.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.