1. mrKotik - 01 Июня, 2014 - 19:05:50 - перейти к сообщению
Всем привет, как можно сделать мини защиту на сайте, вот например открыл ты 10 раз страницу info.php в чичение 1 минуты, а потом что если это совершало 10 раз подряд в чичение минуты, чтоб забанить пользователя, по ID на минут 5 чтоб ему выдавало 500 Internal Server Error можно ли как-то это сделать???
2. Vinyl - 01 Июня, 2014 - 20:20:38 - перейти к сообщению
Вам с использованием БД, tmp-файлов, сессий/кук или memcache(d)?
А вообще, судя по всему, знания у Вас нулевые, т.к. делается это элементарно. Вы уверены, что это Вам нужно? Вам не интересно найти решение самому? Если нет, ИМХО, программирование - не Ваше призвание.
Да, и Вам бы Русский язык подучить, а потом ЯП
Да, и Вам бы Русский язык подучить, а потом ЯП
3. mrKotik - 01 Июня, 2014 - 20:22:21 - перейти к сообщению
Vinyl пишет:
Вам с использованием БД, tmp-файлов, сессий/кук или memcache(d)?
А вообще, судя по всему, знания у Вас нулевые, т.к. делается это элементарно. Вы уверены, что это Вам нужно? Вам не интересно найти решение самому? Если нет, ИМХО, программирование - не Ваше призвание.
Да, и Вам бы Русский язык подучить, а потом ЯП
Да, и Вам бы Русский язык подучить, а потом ЯП
БД можно)
4. Vinyl - 01 Июня, 2014 - 21:03:34 - перейти к сообщению
С БД тоже вариантов много. Например, создать табличку в БД вида:
[ id записи | идентификатор пользователя | таймштамп первого запроса | кол-во запросов | флаг блокировки ]
Затем, при каждом вызове файла смотреть в БД, есть ли там такой ID (как Вы указали выше), либо юзер-агент + IP, либо что угодно, что в Вашем приложении идентифицирует пользователя/гостя. Если нет - добавляете запись, если есть - смотрите на таймштамп:
[ id записи | идентификатор пользователя | таймштамп первого запроса | кол-во запросов | флаг блокировки ]
Затем, при каждом вызове файла смотреть в БД, есть ли там такой ID (как Вы указали выше), либо юзер-агент + IP, либо что угодно, что в Вашем приложении идентифицирует пользователя/гостя. Если нет - добавляете запись, если есть - смотрите на таймштамп:
CODE (htmlphp):
скопировать код в буфер обмена
скопировать код в буфер обмена
- если (таймштамп < минуты)
- {
- если (запросов от 1 до 8)
- {
- +1 к запросам;
- }
- в противном случае
- {
- меняем флаг блокировки на 1;
- }
- }
- в противном случае
- {
- сбрасываем счетчик на 1, ставим текущий таймштамп;
- }
Механизм блокировки реализуете на начальном этапе загрузки Вашего файла, но после установки соединения с БД, т.к. нам нужно будет при каджом вызове проверять вызывающего на флаг блокировки.
Отвратительный алгоритм, но для понимания процесса самое то. Вам же именно это нужно? Или готовое решение?