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 :: Сделать защиту или что-то в этом смысле
Покинул форум
Сообщений всего: 271
Дата рег-ции: Дек. 2013
Помог: 0 раз(а)
Всем привет, как можно сделать мини защиту на сайте, вот например открыл ты 10 раз страницу info.php в чичение 1 минуты, а потом что если это совершало 10 раз подряд в чичение минуты, чтоб забанить пользователя, по ID на минут 5 чтоб ему выдавало 500 Internal Server Error можно ли как-то это сделать???
Vinyl
Отправлено: 01 Июня, 2014 - 20:20:38
Частый посетитель
Покинул форум
Сообщений всего: 645
Дата рег-ции: Янв. 2012 Откуда: Армавир, Краснодарский край
Помог: 15 раз(а)
Вам с использованием БД, tmp-файлов, сессий/кук или memcache(d)?
А вообще, судя по всему, знания у Вас нулевые, т.к. делается это элементарно. Вы уверены, что это Вам нужно? Вам не интересно найти решение самому? Если нет, ИМХО, программирование - не Ваше призвание.
Покинул форум
Сообщений всего: 271
Дата рег-ции: Дек. 2013
Помог: 0 раз(а)
Vinyl пишет:
Вам с использованием БД, tmp-файлов, сессий/кук или memcache(d)?
А вообще, судя по всему, знания у Вас нулевые, т.к. делается это элементарно. Вы уверены, что это Вам нужно? Вам не интересно найти решение самому? Если нет, ИМХО, программирование - не Ваше призвание.
Да, и Вам бы Русский язык подучить, а потом ЯП
БД можно)
Vinyl
Отправлено: 01 Июня, 2014 - 21:03:34
Частый посетитель
Покинул форум
Сообщений всего: 645
Дата рег-ции: Янв. 2012 Откуда: Армавир, Краснодарский край
Помог: 15 раз(а)
С БД тоже вариантов много. Например, создать табличку в БД вида:
[ id записи | идентификатор пользователя | таймштамп первого запроса | кол-во запросов | флаг блокировки ]
Затем, при каждом вызове файла смотреть в БД, есть ли там такой ID (как Вы указали выше), либо юзер-агент + IP, либо что угодно, что в Вашем приложении идентифицирует пользователя/гостя. Если нет - добавляете запись, если есть - смотрите на таймштамп:
сбрасываем счетчик на 1, ставим текущий таймштамп;
}
Механизм блокировки реализуете на начальном этапе загрузки Вашего файла, но после установки соединения с БД, т.к. нам нужно будет при каджом вызове проверять вызывающего на флаг блокировки.
Отвратительный алгоритм, но для понимания процесса самое то. Вам же именно это нужно? Или готовое решение?
Покинул форум
Сообщений всего: 271
Дата рег-ции: Дек. 2013
Помог: 0 раз(а)
Ну вроде я все понял))) Только как вызвать ошибку 500
Vinyl
Отправлено: 01 Июня, 2014 - 21:17:30
Частый посетитель
Покинул форум
Сообщений всего: 645
Дата рег-ции: Янв. 2012 Откуда: Армавир, Краснодарский край
Помог: 15 раз(а)
Вызывать надо доктора, а циферки 500 отдаются браузеру в качестве заголовка. И для чего Вам именно 500? Вы знаете, что это за ошибка? Вам логичнее 403.
Покинул форум
Сообщений всего: 271
Дата рег-ции: Дек. 2013
Помог: 0 раз(а)
Vinyl пишет:
Вызывать надо доктора, а циферки 500 отдаются браузеру в качестве заголовка. И для чего Вам именно 500? Вы знаете, что это за ошибка? Вам логичнее 403.
Ну в принципе да лучше 403) как ее вывести заранее спасибо?
Vinyl
Отправлено: 01 Июня, 2014 - 21:29:24
Частый посетитель
Покинул форум
Сообщений всего: 645
Дата рег-ции: Янв. 2012 Откуда: Армавир, Краснодарский край
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.