• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Wprowadzenie limitu prób logowania

42 Warsaw Coding Academy
0 głosów
579 wizyt
pytanie zadane 2 grudnia 2019 w PHP przez manager96 Bywalec (2,050 p.)

Hej, jako że chcę zwiększyć bezpieczeństwo logowania, w moim projekcie chcę sprawić żeby po 3 nieudanych próbach logowania zablokować konto takiemu użytkownikowi na pewien czas.

Mam jednak problem z implementacją kodu według poradnika na stackoverflow

<?php
$cookie_name = "user";
$cookie_time = "time()+3600*24";
$cookie_value = "";
$user = $_POST['user'];
$pass = $_POST['pass'];
        
$link = mysqli_connect("localhost", "00261256", "haslo12345", "00261256");
if(!$link) { echo"Błąd: ". mysqli_connect_errno()." ".mysqli_connect_error(); }
mysqli_query($link, "SET NAMES 'utf8'");
$result = mysqli_query($link, "SELECT * FROM users WHERE user='$user'");
$rekord = mysqli_fetch_array($result);
    if(!$rekord){
    mysqli_close($link);       
    echo "Brak użytkownika o takim loginie!";
    }else{
        if($rekord['pass']==$pass){
            $_COOKIE['cookie_value'] = $user;
            setcookie($cookie_name, $cookie_value, (int)$cookie_time);
            header('Location: menu.php');

                function ip_details($info) {  
                $json = file_get_contents ("http://ipinfo.io/{$info}/geo");
                $details = json_decode ($json);
                return $details;
                }
 
                $ipaddress = $_SERVER["REMOTE_ADDR"];
                $details = ip_details($ipaddress);
                $details -> ip;
                $info = $details -> ip;
                $data = date ("Y-m-d", time());
                $czas = date ("H:i", time());
                $p = ',';
                $czas2 = $data . $p . $czas;

        $klienci = mysqli_query($link, "INSERT INTO logi(godzina, user, info) VALUES ('$czas2', '$user', '$info')");
        }else{
            mysqli_close($link);
            echo "Błędny login lub hasło!";
            }
        }


$ipaddress = $_SERVER["REMOTE_ADDR"];
mysqli_query($link, "INSERT INTO `ip` (`address` ,`timestamp`)VALUES ('$ipaddress',CURRENT_TIMESTAMP)");
$result2 = mysqli_query($link2, "SELECT COUNT(*) FROM `ip` WHERE `address` LIKE '$ipaddress' AND `timestamp` > (now() - interval 10 minute)");
$count = mysqli_fetch_array($result2, MYSQLI_NUM);

if($count[0] > 3){
  echo "Your are allowed 3 attempts in 10 minutes";
}
        
     
        
        
?>

Jak zaimplementować ten kod który będzie egzekwował takie limity i blokował konta np na 10 minut ?

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
4 odpowiedzi 1,863 wizyt
pytanie zadane 23 września 2015 w PHP przez WWOTEX Mądrala (6,200 p.)
0 głosów
1 odpowiedź 1,429 wizyt
pytanie zadane 7 lutego 2018 w SQL, bazy danych przez czujek22 Dyskutant (7,670 p.)
0 głosów
1 odpowiedź 833 wizyt

93,395 zapytań

142,389 odpowiedzi

322,569 komentarzy

62,753 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...