PHP – die besten Beiträge

PHP User verifizieren?

Hi, ich bin grad dabei ne Website für ein kleines Startup zu programmieren und hänge grad am Login System. Ich hab dabei kein wirkliches Problem sondern eher ne allgemeine Frage:

Wie kann man sicher und sinnvoll einen User verifizieren

Momentan mache ich das so:
Ein User registriert sich, woraufhin in der Datenbank für diesen User ein einzigartiger "Verifizierungscode" generiert wird. Dieser wird dann, wenn er sich einloggt, auf dem PC des Users per Cookie gespeichert. Wenn der User jetzt auf sein Dashboard zugreifen will, wird einfach, wenn vorhanden, der Inhalt des Cookies mit allen Verifizierungscodes in der Datenbank abgeglichen und bei der Zeile, in der die Codes übereinstimmen, wird daraus dann der User geladen. Hoffe das ist verständlich, ansonsten einfach nachfragen.

Den Inhalt des Cookies kann man auch nicht durch irgendwelches rumprobieren herausfinden, da ich diesen mit password_hash() gehashed habe.

Mein Problem jetzt: Ich habe mir einige Docs und Sicherheitsberichte durchgelesen in denen häufig gesagt wird, man solle den User nicht nur anhand eines Cookies automatisch einloggen. Nur leider wird nirgends erwähnt, was man sonst noch so machen könnte, da die Gefahr, dass der Cookie geklaut wird oder ähnliches ja schon besteht. (Cookie Hijacking).

Hat jemand ne sinnvolle Antwort auf mein Problem oder andere Lösungsvorschläge?

Computer, Internet, HTML, Webseite, JavaScript, Cookies, Datenbank, MySQL, PHP

Weiterleitung nach erstem Login?

Guten Tag und frohe Weihnachten. Meine Frage: ich habe vor ein paar Tagen schon einmal von einer Personengrenze in PHP gesprochen. Jedoch bin ich mit meinem Latein am Ende, da ich eher front-end Entwickler bin. Hätte vielleicht jemand einen Code-schnipsel mit dem ich nach einem Login ein timeout setze dass sich für 30 Sekunden niemand anmelden kann? Sollte dann logischerweise auf eine andere Seite weitergeleitet werden für Load-balance.
login:

<?php
include "config.php";

if(isset($_POST['but_submit'])){

    $uname = mysqli_real_escape_string($con,$_POST['txt_uname']);
    $password = mysqli_real_escape_string($con,$_POST['txt_pwd']);

    if ($uname != "" && $password != ""){

        $sql_query = "select count(*) as cntUser from users where username='".$uname."' and password='".$password."'";
        $result = mysqli_query($con,$sql_query);
        $row = mysqli_fetch_array($result);

        $count = $row['cntUser'];

        if($count > 0){
            $_SESSION['uname'] = $uname;
            header('Location: show.php');
        }else{
            echo "Falscher PIN-Code. Bitte versuche es nocheinmal oder lass es.";
        }

    }

}
?>

Crypt Seite:

 <?php
include "config.php";
$timeout = 10;

//Set the maxlifetime of the session

ini_set( "session.gc_maxlifetime", $timeout );

//Set the cookie lifetime of the session

ini_set( "session.cookie_lifetime", $timeout );

// Check user login or not
if(!isset($_SESSION['uname'])){
    header('Location: login.php');
}

// logout
if(isset($_POST['but_logout'])){
    session_destroy();
    header('Location: login.php');
}
session_start();

//Set the default session name

$s_name = session_name();


//Check the session exists or not

if(isset( $_COOKIE[ $s_name ] )) {



    setcookie( $s_name, $_COOKIE[ $s_name ], time() + $timeout, '/' );


}

else

    header("Location: login.php");

?>
programmieren, PHP

Meistgelesene Beiträge zum Thema PHP