## Please edit system and help pages ONLY in the master wiki! ## For more information, please see MoinMoin:MoinDev/Translation. ##master-page:HelpOnConfiguration/SurgeProtection ##master-date:2010-05-15T15:32:41Z #acl -All:write Default #format wiki #language ru = Защита от флуда = <> Для публично доступных вики часто становится важным фактор загруженности процессора и дисковой подсистемы связи с обработкой вики большого количества запросов. Высокая загруженность приводит к медленной обработке отдельных запросов или же полной непригодности к использованию легитимными пользователями. Данная ситуация может быть вызвана следующими факторами: * Кто-то (спаммеры, вандалы, ...) пытается разместить спам или мусор на страницах вики. * Кто-то, использующий кравлер для зеркалирования сайта без ограничений на количество запросов и трафик, что порождает большое количество бесполезных запросов и большой трафик). * Поисковые боты, индексирующие вики. == Что можно сделать? == МойнМойн отслеживает запросы по имени пользователя (в случае, если он аутентифицирован) или IP-адресу (если нет) Если количество запросов превышает некий заданный в конфигурации лимит за заданный в конфигурации период времени, то вики начнёт возвращать вместо результата запроса предупреждение защиты от флуда. При этом настоятельно рекомендуется прекратить порождать новые запросы в течение некоторого времени (например, посвятив его чтению уже полученных страниц). По истечению некоторого времени можно продолжить без каких-либо последствий (пока какой-то из лимитов не будет превышен вновь). В случае продолжения генерации запросов, вики заблокирует пользователя или IP на заданный конфигурации период времени. == Настройка == Настройка механизма защиты от флуда выполняется посредством указания параметров в конфигурации вики. Ниже представлены значения по умолчанию: {{{#!highlight python surge_action_limits = { # допускается не более <количество> запросов, вызывающих <действие> за <период времени> секунд # Формат: # действие: (количество, период времени) 'all': (30, 30), # суммарный лимит на все запросы (кроме запросов к кэшу и действию AttachFile) 'default': (30, 60), # лимит для действий по умолчанию 'show': (30, 60), # показ страницы 'recall': (10, 120), # показ старой версии страницы 'raw': (20, 40), # иногда CSS хранится в виде страницы на вики 'diff': (30, 60), # просмотр различий 'fullsearch': (10, 120), # выполнение поискового запроса 'edit': (30, 300), # редактирование; возможно, лимит будет уменьшен с разделением предварительного просмотра и редактирования 'rss_rc': (1, 60), # получение rss # Данные действия часто используются для изображений — для предотвращения срабатывания ограничений # на страницах с большим количеством ихображений (например, галереях изображений) для этих действий # установлены достаточно высокие лимиты 'AttachFile': (300, 30), # работа с прикреплёнными файлами 'cache': (600, 30), # запросы к кэшу всегда дешёвые } surge_lockout_time = 3600 # количество секунд, на которое блокируется пользователь/IP при игнорировании предупреждений }}} == Советы == === Доступ к вики через прокси или NAT === В случае, если между пользователями находится прокси или маршрутизатор с NAT, отличным от «один к одному» (например, в корпоративной сети или Китае), у пользователей возможны проблемы с защитой от флуда, так как к вики приходят запросы с одного (или некоторого количества фиксированных) IP, что выглядит как действия бота или нерадивого пользователя. Это ограничение можно обойти, аутентифицировавшись в вики, дабы МойнМойн учитывал запросы отдельных пользователей (в случае, если пользователь аутентифицирован, то счётчики работают по имени учётной записи, не по IP) Проблемы отсутствуют также в случае, если прокси добавляет в HTTP-запрос заголовок `X-Forwarded-For` с реальным IP пользователя. === Отключение защиты от флуда === (!) Отключать защиту от флуда не рекомендуется. Если она активируется слишком часто, возможно, стоит настроить лимиты. Даже в случае локальной вики пользователь, решивший запустить на вики кравлера, может вызвать проблемы и сделать вики непригодной к использованию. Для отключения защиты достаточно сделать следующее: {{{#!python surge_action_limits = None # отключает защиту от флуда }}}