www.eprace.edu.pl » budynek-inteligentny » Zasady i zabezpieczenia systemu » Szyfrowanie haseł oraz logowanie

Szyfrowanie haseł oraz logowanie

Szyfrowanie haseł użytkowników realizowane jest przez funkcje MySql – PASSWORD(‘haslo’), której parametrem jest szyfrowany ciąg znaków. Funkcja ta szyfruje dane tylko w jedna stronę, czyli jeżeli zaszyfrujemy dany ciąg znaków to nie rozszyfrujemy w żaden inny sposób niż używając funkcji PASSWORD. W przypadku zapomnienia hasła nie można zrobić nic innego jak tylko zmienić istniejące hasło na nowe. Nie można wysłać hasła np. na maila jeżeli się go nie zna.

Za sprawdzanie czy dany użytkownik wprowadził poprawnie dane i czy może zostać zalogowany odpowiada funkcja checkLogin. Oto fragment kodu:

function checkLogin($login,$pass){

if (($login=="") or ($pass=="")){

$msg="Nie podano nazwy uzytkownika lub hasla";

header("Location:http://localhost/inyznier/login.php");

}

else {

require_once('objects/db.php');

require_once('objects/defines.var.php');

$db = new db;

$db -> conn(db_adress,db_user,db_password);

$db -> selectDB(db_name);

$db->query("select login,password from users where login='$login' and password=PASSWORD('$pass')");

if(!$db->nextrow()) {

$ip = $_SERVER['REMOTE_ADDR'];

$port = $_SERVER['REMOTE_PORT'];

writelog($login,$pass,$ip,$port);

return false;

} else {return true;}

}

}

Sprawdzamy najpierw czy użytkownik wprowadził w ogóle jakieś dane, jeżeli nie to wywołujemy z powrotem stronę odpowiedzialną za logowanie się użytkownika. Jeżeli zostały wprowadzone w formularzu jakieś dane to sprawdzamy ich poprawność wykonując odpowiednie zapytanie na bazie. Jeżeli dane zgadzają się funkcja zwraca wartość TRUE w przeciwnym wypadku wywoływana jest funkcja writelog, która zapisuje dane użytkownika, który próbował się logować do pliku dziennika zdarzeń i zwracana jest wartość FALSE.



komentarze

Copyright © 2008-2010 EPrace oraz autorzy prac.