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 :: Защита авторизации.

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
leshiy
Отправлено: 04 Августа, 2017 - 14:52:10
Post Id


Частый гость


Покинул форум
Сообщений всего: 188
Дата рег-ции: Июнь 2008  


Помог: 0 раз(а)




После 2-ой попытки неправильной авторизации форма блокируется и выводится время через которое возобновиться доступ к авторизации, но у меня отсчет этого времени начинается считаться с 1-ой попытки и когда форма блокируется то выводится не 30сек. а меньше.Как бы это поправить?
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. if(!$_SESSION["vzlom"]){$_SESSION["vzlom"] = 1;
  4. $_SESSION["v_time"] = time ();}
  5. if((time () - $_SESSION["v_time"]) > 30) unset($_SESSION["vzlom"]);
  6. $vrem = (30 - (time() - $_SESSION["v_time"]));
  7. $m=floor(($vrem%3600)/60);
  8. $s=($vrem%3600)%60;
  9. $ot_time = ("".$m." мин. ".$s." сек.");
  10. if($_SESSION["vzlom"] >= 2)
  11.  {echo $ot_time;}
  12. ?>
  13.  
 
 Top
zapatronen
Отправлено: 04 Августа, 2017 - 16:39:38
Post Id



Гость


Покинул форум
Сообщений всего: 103
Дата рег-ции: Июль 2011  


Помог: 0 раз(а)




1 минута = 60 сек, ищи в коде 60 сек пробуй менять на больше
(Добавление)
или меньше
 
 Top
leshiy
Отправлено: 04 Августа, 2017 - 17:24:28
Post Id


Частый гость


Покинул форум
Сообщений всего: 188
Дата рег-ции: Июнь 2008  


Помог: 0 раз(а)




Да тут дело не в кол-ве секунд, а в начале отсчета.
 
 Top
Sail
Отправлено: 04 Августа, 2017 - 22:38:42
Post Id



Участник


Покинул форум
Сообщений всего: 1131
Дата рег-ции: Февр. 2014  


Помог: 57 раз(а)




leshiy пишет:
Да тут дело не в кол-ве секунд, а в начале отсчета.

Ну так и задавайте время начала не в первой ветке, где выставляете 1.
Разделите верку, где проверяете на >= 2. Ту часть, где будете сравнивать с двумя - сделайте альтернативной веткой сравнения с 0/false/null (эту проверку, кстати, лучше доверить функции isset(), тогда инициализировать значение можно будет нулем, или empty(), если уж начинать с 1). Значение с индексом vtime инициализируем именно в этой ветке.
Далее - проверка существования значения с индексом v_time. И только если она успешна - проверяем длительность и, если уже можно (тут проверка длительности текущего запрета), то - сбросить значения v_time и vzlom.
В альтернативной ветке (не той, где проверили длительность, а той, где проверяли существование v_time) - вычисляете оставшееся время и отображаете его.
Как-то так. Закатив глазки
Нарисуйте блок-схему - станет проще Улыбка
Может, найдете как оптимизировать процесс...
 
 Top
Строитель Модератор
Отправлено: 05 Августа, 2017 - 01:17:55
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 73 раз(а)




leshiy, для примера я дописал пару переменных с паролями из html-формы и из базы, и прокомментировал основные моменты
Спойлер (Отобразить)
 
 Top
OrmaJever Модератор
Отправлено: 05 Августа, 2017 - 11:45:20
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




leshiy я вас огорчу, очистил сессии и можно снова авторизироваться


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
LIME
Отправлено: 05 Августа, 2017 - 12:32:57
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




zapatronen пишет:
1 минута = 60 сек, ищи в коде 60 сек пробуй менять на больше
а еще лучше используй константы/конфиги чтоб не искать при смене значений
OrmaJever пишет:
leshiy я вас огорчу, очистил сессии и можно снова авторизироваться
ты хотел сказать куки... всетаки есть разница)
надо завести кэш с ip нарушителя чтоб не опираться на локальные хранилища и кукисы
 
 Top
MouseZver
Отправлено: 05 Августа, 2017 - 13:54:05
Post Id



Новичок


Покинул форум
Сообщений всего: 58
Дата рег-ции: Июнь 2017  
Откуда: php.ru


Помог: 1 раз(а)




от перебора пароля ничего не спасет ( с )

https://php[dot]ru/forum/threads/pis[dot][dot][dot]651/#post-527666
 
 Top
LIME
Отправлено: 05 Августа, 2017 - 14:01:10
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




ага
особенно если у тебя квантовый компьютер и ты в локалке с целью
или у тебя есть все время мира
чушь
(Добавление)
Цитата:
сессия уничтожается при закрытии браузера
неправда
даже сессионная кука необязательно
дальше не стал читать
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB