ну или сам скрипт модифицировать так, чтоб проверял. если идёт какая нибудь запись данных куда нибудь, то проверять последнюю запись
ну или сам скрипт модифицировать так, чтоб проверял. если идёт какая нибудь запись данных куда нибудь, то проверять последнюю запись
# Koenig (20.12.2015 / 12:13)Вот именно это я и хочу сделать. Кидать пользователя сайта через редирект куда либо, когда он начинает обновлять страницу много раз. Работать это должно на всем сайте. Либо инклудить в шапку или ноги. Либо в ядре прописать
~РайСкиЙ~, ты бы подробнее написал для чего это все. можно попробовать через сессию проверку сделать, записывать время с микросекундами и проверять с текущим, и например делать редирект на какую нибу
Вот через гугл нашел подобное:
Если к Вашему сайту идет
слишком много обращений
от какого-либо компьютера
(IP адреса), то количество
обращений нужно
сокращать чтобы,
например, не выкачали
Вашу базу сайта или чтобы
не уложили сервер
сотнями (а то и тысячами)
обращений в секунду.
Для защиты своего сайта
от большого количества
обращений можно
воспользоваться простым,
но довольно эффективным
методом, основанным на
сессиях.
В самом начале всех
страниц Вашего сайта,
которые будем защищать
от слишком частого
обращения, необходимо
установить следующий код:
PHP код:
<? php
// объявляем работу с
сессиями
session_start ();
// указываем папку, куда
будет сохраняться
информация сессий
session_save_path ($_SERVER
["DOCUMENT_ROOT" ]. "/log/
session" );
// устанавливаем защиту
по IP (сессии) не чаще, чем
раз в две секунды.
if (isset($_SESSION ["telecod_
ip" ])) {
$t = ((int)( time()- $_SESSION
["telecod_ip" ]));
if ($t < 2) die( "Нельзя
обращаться к сайту чаще,
чем 1 раз в две секунды!" );
}
$_SESSION ["telecod_ip" ]
=time();
?>
Данный скрипт записывает
время последнего
обращения к странице
сайта для каждого
посетителя в отдельности.
При повторном обращении
к страничке, скрипт
проверяет, через какой
интервал времени было
это повторное обращение.
Если повторное обращение
было совершено ранее
указанного в скрипте
интервала времени (в
данном случае это две
секунды), то страничка не
обновится, а будет
показано соответствующее
сообщение. ]
=time();
?
~РайСкиЙ~, попробуй в функции изменить
('FLOOD: exceeded limit of allowed requests');
на
header('Location : /'); exit;
Koenig, Так такого сообщения
FLOOD: exceeded limit
of allowed requests
тоже никогда не появляется. Это ничего не даст
В incfiles/classes/core.php
есть такой код:
/*
-----------------------------------------------------------------
Стартуем Сессию
-----------------------------------------------------------------
*/
private function session_start()
{
session_name('SESID');
session_start();
}// объявляем работу с
сессиями
session_start ();
// указываем папку, куда
будет сохраняться
информация сессий
session_save_path ($_SERVER
["DOCUMENT_ROOT" ]. "/log/
session" );
// устанавливаем защиту
по IP (сессии) не чаще, чем
раз в две секунды.
if (isset($_SESSION ["telecod_
ip" ])) {
$t = ((int)( time()- $_SESSION
["telecod_ip" ]));
if ($t < 2) die( "Нельзя
обращаться к сайту чаще,
чем 1 раз в две секунды!" );
}
$_SESSION ["telecod_ip" ]
=time(); ~РайСкиЙ~, а в настройках сайта что стоит?
Koenig, где именно в настройках?
~РайСкиЙ~, ну я про это и писал ранее
только
session_save_path
не надо, так как у сессии есть своя стандартная директория для хранения
~РайСкиЙ~, админ панель глянь