Bene, ho creato login che funziona abbastanza bene, ma sono preoccupato per la sua sicurezza. Per verificare se l'utente è loggato, io uso solo questo
$auth = $_COOKIE['authorization'];
header ("Cache-Control:no-cache");
if($auth !== "ok") {
header ("Location:index.php");
exit();
}
che è davvero pessimo lo so, ma voglio sapere cosa posso fare per proteggerlo ancora di più, questo è il modulo di accesso:
<?php
error_reporting(0);
session_start();
include("database.php");
if(isset($_POST['login_button']))
{
$userName = mysqli_real_escape_string($con, $_POST['username']);
$userPass = mysqli_real_escape_string($con, $_POST['password']);
$hashedPass = hash('whirlpool', $userPass);
$query = mysqli_query($con, "SELECT Ime, Lozinka, Confirmed FROM 'Igraci' WHERE 'Ime' = '$userName' AND 'Lozinka' = '$hashedPass' AND 'Confirmed' = '1'") or die(mysqli_error());
$row = mysqli_num_rows($query);
if($row > 0)
{
setcookie("username", $_POST['username'], time()+3600*24);
setcookie("authorization","ok");
header( "Location:welcome.php");
exit();
}
else
{
echo '
</br><div class="flash_error">Podatci koje ste uneli nisu ispravni, ili vas racun nije aktiviran.</div>
';
}
}
if(isset($_GET['logout']))
{
setcookie("username", "", time()-60);
setcookie("authorization","");
header( "Location:index.php");
exit(); # stop executing here
}
if($_COOKIE['authorization'] == "ok")
{
header ("Location:welcome.php");
exit();
}
?>