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]   

> Без описания
mrKotik
Отправлено: 01 Июня, 2014 - 19:05:50
Post Id



Посетитель


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


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




Всем привет, как можно сделать мини защиту на сайте, вот например открыл ты 10 раз страницу info.php в чичение 1 минуты, а потом что если это совершало 10 раз подряд в чичение минуты, чтоб забанить пользователя, по ID на минут 5 чтоб ему выдавало 500 Internal Server Error можно ли как-то это сделать???
 
 Top
Vinyl
Отправлено: 01 Июня, 2014 - 20:20:38
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 645
Дата рег-ции: Янв. 2012  
Откуда: Армавир, Краснодарский край


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




Вам с использованием БД, tmp-файлов, сессий/кук или memcache(d)?


А вообще, судя по всему, знания у Вас нулевые, т.к. делается это элементарно. Вы уверены, что это Вам нужно? Вам не интересно найти решение самому? Если нет, ИМХО, программирование - не Ваше призвание.

Да, и Вам бы Русский язык подучить, а потом ЯП

(Отредактировано автором: 01 Июня, 2014 - 20:21:25)



-----
Пессимисты пользуются die(), оптимисты - exit()
 
 Top
mrKotik
Отправлено: 01 Июня, 2014 - 20:22:21
Post Id



Посетитель


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


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




Vinyl пишет:
Вам с использованием БД, tmp-файлов, сессий/кук или memcache(d)?


А вообще, судя по всему, знания у Вас нулевые, т.к. делается это элементарно. Вы уверены, что это Вам нужно? Вам не интересно найти решение самому? Если нет, ИМХО, программирование - не Ваше призвание.

Да, и Вам бы Русский язык подучить, а потом ЯП


БД можно)
 
 Top
Vinyl
Отправлено: 01 Июня, 2014 - 21:03:34
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 645
Дата рег-ции: Янв. 2012  
Откуда: Армавир, Краснодарский край


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




С БД тоже вариантов много. Например, создать табличку в БД вида:

[ id записи | идентификатор пользователя | таймштамп первого запроса | кол-во запросов | флаг блокировки ]

Затем, при каждом вызове файла смотреть в БД, есть ли там такой ID (как Вы указали выше), либо юзер-агент + IP, либо что угодно, что в Вашем приложении идентифицирует пользователя/гостя. Если нет - добавляете запись, если есть - смотрите на таймштамп:

CODE (htmlphp):
скопировать код в буфер обмена
  1. если (таймштамп < минуты)
  2. {
  3.  если (запросов от 1 до 8)
  4.  {
  5.    +1 к запросам;
  6.  }
  7.  в противном случае
  8.  {
  9.    меняем флаг блокировки на 1;
  10.  }
  11. }
  12. в противном случае
  13. {
  14.  сбрасываем счетчик на 1, ставим текущий таймштамп;
  15. }


Механизм блокировки реализуете на начальном этапе загрузки Вашего файла, но после установки соединения с БД, т.к. нам нужно будет при каджом вызове проверять вызывающего на флаг блокировки.

Отвратительный алгоритм, но для понимания процесса самое то. Вам же именно это нужно? Или готовое решение?


-----
Пессимисты пользуются die(), оптимисты - exit()
 
 Top
mrKotik
Отправлено: 01 Июня, 2014 - 21:06:19
Post Id



Посетитель


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


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




Ну вроде я все понял))) Только как вызвать ошибку 500
 
 Top
Vinyl
Отправлено: 01 Июня, 2014 - 21:17:30
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 645
Дата рег-ции: Янв. 2012  
Откуда: Армавир, Краснодарский край


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




Вызывать надо доктора, а циферки 500 отдаются браузеру в качестве заголовка. И для чего Вам именно 500? Вы знаете, что это за ошибка? Вам логичнее 403.


-----
Пессимисты пользуются die(), оптимисты - exit()
 
 Top
mrKotik
Отправлено: 01 Июня, 2014 - 21:24:52
Post Id



Посетитель


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


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




Vinyl пишет:
Вызывать надо доктора, а циферки 500 отдаются браузеру в качестве заголовка. И для чего Вам именно 500? Вы знаете, что это за ошибка? Вам логичнее 403.
Ну в принципе да лучше 403) как ее вывести заранее спасибо?
 
 Top
Vinyl
Отправлено: 01 Июня, 2014 - 21:29:24
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 645
Дата рег-ции: Янв. 2012  
Откуда: Армавир, Краснодарский край


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




Почитайте тут


-----
Пессимисты пользуются die(), оптимисты - exit()
 
 Top
mrKotik
Отправлено: 01 Июня, 2014 - 21:29:32
Post Id



Посетитель


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


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




А все нашел, спасибо большое за ответ)))

header('HTTP/1.1 500 Internal Server Error');


Щас буду писать код)))
 
 Top
Vinyl
Отправлено: 01 Июня, 2014 - 21:35:59
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 645
Дата рег-ции: Янв. 2012  
Откуда: Армавир, Краснодарский край


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




mrKotik пишет:
Щас буду писать код)))


Из Ваших уст звучит как угроза) Без обид)


-----
Пессимисты пользуются die(), оптимисты - exit()
 
 Top
mrKotik
Отправлено: 01 Июня, 2014 - 22:43:22
Post Id



Посетитель


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


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




Vinyl пишет:
mrKotik пишет:
Щас буду писать код)))


Из Ваших уст звучит как угроза) Без обид)


Та нет ничего страшного)))
 
 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