Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> защита от перегрузки сервера, ожидание в наказание за частые запросы 
:(
    Опции темы
pavel_p
Дата 20.3.2008, 08:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 27.7.2007

Репутация: нет
Всего: нет



хочу реализовать более тормозной ответ с сайта при частом обращении, только вот одна трабла, если нет решения, то можно пойти в обход накладные расходы не должны быть большими 

есть ли у PHP способ организовать (гипер-) глобальной области переменных, которые были б доступны из разных запросов
(похоже на сеансы только более глобальная вещь - я конечно подозреваю, что можно это сделать при помощи файлика или таблички в ДБ - но хочеться более элегантное решение)
- затем мы при помощи этой фичи накапливаем данные о запросах в течении минуты от IP-адресов и если какое-нибуть создание пытается запрашивать страницы с большой скоростью - то его сразу штрафовать секундами ожидания. к примеру сделал в минуту 10 запросов к динамическому коненту - наказываешься 10 секундами штрафа.

так называемая защита от прожорливых ботов.

ps. я посмотрел документацию - скорее всего э то суперглобальная переменная $_ENV 
PM MAIL   Вверх
skyboy
Дата 20.3.2008, 08:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



Цитата(pavel_p @  20.3.2008,  07:00 Найти цитируемый пост)
скорее всего э то суперглобальная переменная $_ENV 

даже если бы запись в этот массив гарантировала сохранение данных между вызовами различных скриптов, то все равно - держать в памяти список из ip + количества запросов + дате последнего обращения(потенциально - 4294967296 * (4 + 2 + 8) - 56 Мб) и лопатить этот массив вручную - дело-то как раз не-"элегантное".
Цитата(pavel_p @  20.3.2008,  07:00 Найти цитируемый пост)
таблички в ДБ

это решение достаточно элегантно. можешь не беспокоиться.
PM MAIL   Вверх
pavel_p
Дата 20.3.2008, 10:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 27.7.2007

Репутация: нет
Всего: нет



Цитата(skyboy @  20.3.2008,  08:50 Найти цитируемый пост)
даже если бы запись в этот массив гарантировала сохранение данных между вызовами различных скриптов, то все равно - держать в памяти список из ip + количества запросов + дате последнего обращения(потенциально - 4294967296 * (4 + 2 + 8) - 56 Мб) и лопатить этот массив вручную - дело-то как раз не-"элегантное".




нет достаточно сохранять только те что светяться в течении минуты.. т.е. обычные пользователи которые по нескольку минут просматривают одну страницу быстро будут вываливаться из этой замечательной таблицей


да БД это кстати элегантное решение - мне кажется я замучусь реализовывать на массивах


такая таблица:
create table query_tail 
(
ip_address char(16),
ts timestamp,
index(ip_address),
index(ts)    --- надеюсь это ускорит операцию удаления устаревших сведений надо залезть в мануал
)


а при каждом вызове делаем такие запросы
delete from query_trail where (где кароче ts старше одной минуты... ща сложно думать)
select count(*) from query_tail where ip_address={$_SERVER['REMOTE_ADDR']}
а потом по результатам последнего запроса:
sleep($value);

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0704 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.