Implementación segura del inicio de sesión del usuario

0

Bueno, creé el inicio de sesión que funciona bastante bien, pero me preocupa su seguridad. Para verificar si el usuario ha iniciado sesión, uso solo esto

$auth = $_COOKIE['authorization'];
header ("Cache-Control:no-cache");
if($auth !== "ok") {
    header ("Location:index.php");
    exit();
}

lo que es realmente malo, lo sé, pero quiero saber qué puedo hacer para asegurarlo aún más, este es el formulario de inicio de sesión:

    <?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();
    }

?>
    
pregunta Nathaniel 14.02.2016 - 17:18
fuente

1 respuesta

2

El problema con este inicio de sesión es que la configuración de una cookie username con un valor y la configuración de una cookie de autorización con un valor ok registrarán a alguien. Recomendaría encarecidamente leer sobre PHP, sesiones y autenticación.

    
respondido por el h4ckNinja 14.02.2016 - 17:36
fuente

Lea otras preguntas en las etiquetas