WItam!
Napisałem sobie klasę do logowania, ocencie na ile jest ona bezpieczna? To mój pierwszy taki skrypt.
class logowanie
{
function zaloguj($login, $password)
{
include('../database/config_db.php');
$db = new mysqli("$dbHost", "$dbUser", "$dbPass", "$dbName");
if (mysqli_connect_errno() !=0)
{
echo "Połączenie z bazą danych nie powiodło się, kod błędu: ".mysqli_connect_error();
exit;
}
if (empty($login)!=0 || empty($password)!=0)
{
echo "Błędne hasło lub login";
exit;
}
$zapytanie = "select pass from users where name='".$login."'";
$wynik = $db->query($zapytanie);
$ile = $wynik->num_rows;
if ($ile != 1)
{
echo "Podany użytkownik nie istnieje w bazie danych";
exit;
}
else
{
$wiersz = $wynik->fetch_assoc();
$dbPassword = $wiersz['pass'];
$password = md5($password);
}
if($password===$dbPassword)
{
$_SESSION['password']=$password;
$_SESSION['user']=$login;
return 1;
}
else
{
echo "Nieprawidłowe hasło";
return 0;
}
}
function wyloguj()
{
session_destroy();
return 1;
}
function sprawdzUz()
{
session_start();
if(empty($_SESSION['password']) == 1 || empty($_SESSION['user'])== 1 )
{
return 0;
exit;
}
include('database/config_db.php');
$db = new mysqli("$dbHost", "$dbUser", "$dbPass", "$dbName");
if (mysqli_connect_errno() !=0)
{
echo "Połączenie z bazą danych nie powiodło się, kod błędu: ".mysqli_connect_error();
exit;
}
$zapytanie = "select name, pass from users where name='".$_SESSION['user']."'";
$wynik = $db->query($zapytanie);
$ile = $wynik->num_rows;
if ($ile != 1)
{
echo "Podany użytkownik nie istnieje w bazie danych";
}
else
{
$wiersz = $wynik->fetch_assoc();
$dbLogin = $wiersz['name'];
$dbPassword = $wiersz['pass'];
}
if($_SESSION['password']===$dbPassword && $_SESSION['user']===$dbLogin)
{
return 1;
}
else
{
return 0;
}
}
}
?>