Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Закрытие доступа на 15 минут
Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010 Откуда: Самара
Помог: 17 раз(а)
В таблице users хранится информация о пользователе то есть его логин, пароль и его id
В таблице oshibka хранится информация о пользователе который не правильно ввел пароль и логин три раза, то есть в поле col содержится сколько раз ошибся пользователя, в поле date храниться дата, в поле ip храниться ip пользователя
Есть авторизация на сайте:
Форма авторизации:
Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010 Откуда: Самара
Помог: 17 раз(а)
У меня уже есть вывод "Вы набрали логин или пароль неверно 3 раза" если пароль и логин не совпадают, мне просто вместо этого вывода нужно закрыть соединение на несколько минут и все. Или у меня что то не так в коде?
----- Так было, так есть и так будет
ZeiZ
Отправлено: 28 Апреля, 2010 - 06:49:54
Частый гость
Покинул форум
Сообщений всего: 231
Дата рег-ции: Нояб. 2009 Откуда: Москва
Помог: 0 раз(а)
Если Вы хотите закрыть форму авторизации на 15 минут, то как минимум перед выводом формы надо сделать условие выводить её или нет.
Так например, если пользователь 3 раза ввел неверно && с последнего ввода прошло меньше 900секунд, то сообщение о том, что форма заблокирована, попробовать через некоторое время, иначе выводим форму.
Для этого в базе должна быть таблица-лог со всеми входами в систему. Я бы вообще сделал лог типа: (id, ip, time, ok) где ок - 1 - вошел, 0 - неполучилось.
Индентифицировать пользователя по IP не есть хорошо. IP - часто динамический, его можно подделать\изменить + блокировкой IP можно заблокировать сотню порядочных пользователей.
Используйте капчу, будет проще. Потом можно и на капчу блок поставить, если совсем параноя будет =).
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
vanicon пишет:
Мне просто вместо этого вывода нужно закрыть соединение на несколько минут и все
Работа PHP-скриптов организована таким образом что соединение от пользователя принимается в любом случае - при этом сначала происходит загрузка GET/POST и только потом уже выполнение вашего PHP-скрипта - поэтому вы должны име в виду что даже если вы заблокируете какой-то IP-адрес то он может продолжать спокойно слать запросы вашему PHP-скрипту (При этом максимальная длина запроса ограничена только в настройках php.ini или самого Apache)
ZeiZ пишет:
Для этого в базе должна быть таблица-лог со всеми входами в систему. Я бы вообще сделал лог типа: (id, ip, time, ok) где ок - 1 - вошел, 0 - неполучилось.
Индентифицировать пользователя по IP не есть хорошо. IP - часто динамический, его можно подделать\изменить + блокировкой IP можно заблокировать сотню порядочных пользователей.
Это верно посколько здесь надо держаться золотой середины - с одной стороны нельзя блокировать IP а с другой вход на определенный аккаунт (А вдруг кто-то будет специально вводить неверные пароли другому пользователю чтобы тот не вошел - поэтому надо держать в БД входов и IP-адрес и логин Плюс если на логин пользователья было множество неудачных попыток войти - то отправить ему письмо с предложением сменить пароль (Пока его не смогли подобрать)
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
vanicon
Отправлено: 28 Апреля, 2010 - 14:52:10
Частый посетитель
Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010 Откуда: Самара
Помог: 17 раз(а)
Блокировать не по ip а по id, а id чему будет ровняться или у него будет auto_increment. А если вместо блокировки пользователя выводить ему капчу, то есть если пользователь ошибся 3 раза появляется капча, или это не сможет защитить от подбора паролей.
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
vanicon пишет:
Блокировать не по ip а по id, а id чему будет ровняться или у него будет auto_increment
Блокировать по чистому IP тоже нельзя - ведь злоумышленник может легко написать робота который будет анализировать список пользователей на сайте - и для каждого из них автоматически рассылвать неверные авторазиционные запросы - и таким образом получится что он создаст эффект Dos-атаки за счет того что все пользователи окажутся заблокированными
Поэтому лучше использовать гибридную блокировку - по ID и по IP в разумном соотношении и на разумное время - и также высылать уведомительное письмо пользователю которго хотели взломать чтобы он мог сменить пароль
Что касается auto_increment то он работает только для KEY PRIMARY ID - иначе используйте собственный триггер для обработки увеличения значения
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
vanicon
Отправлено: 29 Апреля, 2010 - 14:06:47
Частый посетитель
Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010 Откуда: Самара
Помог: 17 раз(а)
JustUserR пишет:
Поэтому лучше использовать гибридную блокировку - по ID и по IP в разумном соотношении и на разумное время - и также высылать уведомительное письмо пользователю которго хотели взломать чтобы он мог сменить пароль
То есть если пользователь не ввел пароль три раза, заносятся данные, его ip адрес в поле ip, дата ошибки в поле date, количество неудачных попыток в поле col.
А чему же тогда будет равен id? И как это использовать гибридную блокировку?
----- Так было, так есть и так будет
markus4
Отправлено: 29 Апреля, 2010 - 14:31:52
Гость
Покинул форум
Сообщений всего: 78
Дата рег-ции: Март 2010
Помог: 0 раз(а)
Лучше всё-таки блокировать именно по IP.
Злоумышленник легко может просто из вредности ввести 3 раза неправильный пароль и логин, чтобы пользователя заблокировали.
Но есть одно НО - он должен знать чужой логин.
А вот это уже непреодолимое препятствие.
Блокировку мы пишем так, чтобы она срабатывала после 3 неправильных вводов пароля - НО только при правильном логине.
А если неправильный И логин, И пароль - тогда просто посылаем хакера в трещину.
Автоподбор логина опять же ничего не даст - у хакера всего 3 попытки.
----- Нет вокруг ничего кроме бесконечного журчания опкодов вселенной...
vanicon
Отправлено: 29 Апреля, 2010 - 15:16:57
Частый посетитель
Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010 Откуда: Самара
Помог: 17 раз(а)
У меня логика такая:
Хакер взламывает пользователя, и если он ошибся в логине или пароле 3 раза, то блокируем хакера по его IP, на 15 минут (возможно ли это). Даже если хакер ошибся 3 раза только в пароле, а логин ввел правильно, то все ровно блокируем его по IP на 15 минут.
----- Так было, так есть и так будет
markus4
Отправлено: 29 Апреля, 2010 - 16:30:06
Гость
Покинул форум
Сообщений всего: 78
Дата рег-ции: Март 2010
Помог: 0 раз(а)
На некоторых сайтах логины открыты для доступа. Например на этом форуме. Я например ввожу логин JustUser, и неправильный пароль... И так 3 раза. Что будет? (Не считая того что получу бан Вероятно, после 3 ошибок нужно проверять привязку. если привязка правильна - заблокировать доступ на 30 секунд.
----- Нет вокруг ничего кроме бесконечного журчания опкодов вселенной...
JustUserR
Отправлено: 30 Апреля, 2010 - 13:07:41
Активный участник
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
markus4 пишет:
Но есть одно НО - он должен знать чужой логин.
А вот это уже непреодолимое препятствие.
Множество сайтов и форумов открыты для чтения для любых анонимных пользователей - это сделано конечно же для удобства тех кто нашел определенную тему из поисковой системы и напрямую перешел по ссылке
С другой стороны гораздо лучше сделать обязательную капчу при входе - таким образом автоматический проход про всем логинам отпадает - и далее блокировать вход на определенных аккаунт с определенного IP на заданное время (Можно учитывать попытки рецедива)
markus4 пишет:
Автоподбор логина опять же ничего не даст - у хакера всего 3 попытки.
Если логины не открыты то это само оптимальное решение - если же открыты то я бы использовал гибридную проверку
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
vanicon
Отправлено: 30 Апреля, 2010 - 18:27:55
Частый посетитель
Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010 Откуда: Самара
Помог: 17 раз(а)
Если все же блокировать по IP, у меня вопрос может ли хакер подделать свой IP?
----- Так было, так есть и так будет
JustUserR
Отправлено: 30 Апреля, 2010 - 18:32:15
Активный участник
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
vanicon пишет:
Если все же блокировать по IP, у меня вопрос может ли хакер подделать свой IP?
Во-первых у хакера может быть динамический или WAP IP и таким образом с помощью атаки он может заблокировать целые подсети - если действовать только напрямую без гибридного подхода Во-вторых можно использовать различные proxy или куда уж там botnet (Если вы им особенно сильно не угодите
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
vanicon
Отправлено: 30 Апреля, 2010 - 19:00:21
Частый посетитель
Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010 Откуда: Самара
Помог: 17 раз(а)
Что то я не очень понимаю логику гибридной блокировки, и как ее осуществить?
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.