Нормальный ли способ получился?. При вводе правильного пароля сайт все равно пишет, что пароль неправильный, но ждет от вас второго пароля. То есть авторизация происходит при введении двух правильных паролей подряд. Если после первого пароля введен неправильный, а затем правильный - авторизации не происходит. То есть, если ввести первый раз неправильный пароль, то программа будет подбирать пароль вечно, пока не закрыть браузер и снова его открыть, что бы отчистить сессию. Псевдокод: index.php PHP: <?php session_start(); if(!empty($_SESSION['user'])) { echo 'Добро пожаловать ' . $_SESSION['user']; } else { require_once 'auth.php'; } //session_destroy(); ?> auth.php PHP: <?php $login = 'Dima'; $pass = '827ccb0eea8a706c4c34a16891f84e7b'; //12345 $pass2 = 'd45ec53e6fa3f8e64b5e434b374417b1'; // zxc3 $password = $pass . $pass2; if(!empty($_POST['login']) && !empty($_POST['password'])) { if(empty($_SESSION['pass1'])) { $_SESSION['pass1'] = $_POST['password']; header('Location: ./'); } elseif(!empty($_SESSION['pass1'])) { $_SESSION['pass2'] = $_POST['password']; header('Location: ./'); } if(!empty($_SESSION['pass1']) && !empty($_SESSION['pass2'])) { $passwordVer = md5($_SESSION['pass1']) . md5($_SESSION['pass2']); if($_POST['login'] == $login && $passwordVer === $password) { $_SESSION['user'] = $login; header('Location: ./'); } else { header('Location: ./'); } } } else { ?> <p>Неверный логин или пароль</p> <form method="POST" action=""> <p><label><input type="text" name="login" placeholder="Логин"></label></p> <p><label><input type="password" name="password" placeholder="Пароль"></label></p> <input type="submit"> </form> <?php } ?>
Не, называется - не ходите на мой сайт. Нормально - это когда после трёх попыток ввода неправильного пароля надо 15 минут подождать - вполне достаточно для защиты от брутфорса
приходит рак, вписывает пароль во форме, сабмит... и присылается форма опять... вы че сраные разрабы, издеваетесь ?
Ну банки применяют двухфакторную аутентификацию, и если на сайте столь же важные данные, можно применить. Но тогда нужно второй пароль генерируется случайным образом и присылается, к примеру, по СМС.