| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > Лимит авторизаций |
| Автор: grider 28.3.2008, 08:29 |
| Здравстуйте всем. Есть вот такой код: session_start(); if(!isset($_POST['ok'])) { echo " <html> <head><title>Autheration System</title></head> <body bgcolor=linen> <table height='100%' width='100%'> <tr> <td valign=center align=middle> <form method='POST' > <table border=1> <tr> <td align=middle colspan=2><b>Административный вход</b></td></tr> <tr><td align=right><font face='tahoma' size='2'>Login:</font></td> <td><INPUT name='login'></td></tr> <tr> <td><font face='tahoma' size='2'>Password:</font></td> <td><INPUT type=password name='pass'></td></tr> <tr> <td align=middle colspan=2> <input type=submit name='ok' value=Войти></td></tr> </table></form></td> </tr> </table> </body> </html>"; } else { include ("connect.php"); $res=mysql_query("SELECT * FROM auth WHERE login='".$_POST['login']."'AND pass='".$_POST['pass']."'",$conn); if(mysql_num_rows($res)!=1) { echo "Введены не верные логин или пароль"; } else { $_SESSION['status']=true; Header("Location:admin.php"); exit(); } mysql_close($conn); } Как можно реализовать такой алгоритм с помощью сессий где если пользователь вводит N-раз пароль,логин не правильно то система просто блокирует его дальнейшую работу или IP адрес пользователя |
| Автор: Feldmarschall 28.3.2008, 08:45 |
| С помощью сессий такой механизм реализовывать бессмысленно. Можно только с помощью БД. Соответственно - отдельная таблица, куда пишется логин или ид пользователя, время входа и, опционально - IP адрес при вводе логина смотрим в таблицу, сколько было попыток за последнее время, и, если количтество нас не устраивает, блокируем возможность входа. можно по экспоненте: если три раза ввели неправильно - блокируем на минуту, 5 - на 5, 10 - блокируем вообще, с возможностью разблокировки через обращение в администрацию. Ну, или что фантазия подскажет. IP адрес блокировать в современных условиях смысла, в общем, не имеет |
| Автор: grider 28.3.2008, 13:41 |
| Feldmarschall напиши сам код где смотрим в табл. сколько раз было попыток входа если не устраивает, блокируем возможность входа |
| Автор: Feldmarschall 28.3.2008, 13:54 |
| Я думаю, что если ты не в состоянии написать такой код самостоятельно, то твоей системе такая защита и не нужна. Гораздо важнее сейчас для тебя занаться повышением своей квалификации в программировании. к примеру, для твоей авторизации даже подбирать ничего не надо - можно просто получить доступ, используя sql инъекцию Чтобы это предотвратить, передаваемые в запрос данные следует обрабатывать функцией mysql_real_escape_string() любые данные и всегда. |