## 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:2009-11-20T14:26:15Z
#acl -All:write Default
#format wiki
#language ru

= Защита от флуда =

Для публично доступных вики часто становится важным фактор загруженности процессора и дисковой подсистемы  связи с обработкой вики большого количества запросов. Высокая загруженность приводит к медленной обработке отдельных запросов или же полной непригодности к использованию легитимными пользователями.

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

== Что можно сделать? ==

МойнМойн отслеживает запросы по имени пользователя (в случае, если он аутентифицирован) или IP-адресу (если нет)

Если количество запросов превышает некий заданный в конфигурации лимит за заданный в конфигурации период времени, то вики начнёт возвращать вместо результата запроса предупреждение защиты от флуда.

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

В случае продолжения генерации запросов, вики заблокирует пользователя или IP на заданный  конфигурации период времени.

== Настройка ==

Настройка механизма защиты от флуда выполняется посредством указания параметров в конфигурации вики. Ниже представлены значения по умолчанию:
{{{#!highlight python
    surge_action_limits = { 
        # допускается не более <количество> запросов, вызывающих <действие> за <период времени> секунд
        # Формат:
        # действие: (количество, период времени)
        'show':             (20,  60), # показ страницы
        'raw':              (20,  40), # some people use this for css
        'AttachFile':       (60,  60), # работа с прикреплёнными файлами
        'diff':             (30,  60), # просмотр различий
        'fullsearch':        (5,  60), # выполнение поискового запроса
        'edit':             (10, 120), # редактирование
        'rss_rc':            (1,  60), # получение rss
        'default':          (30,  60), # параметры для остальных действий
    }
    surge_lockout_time = 3600          # количество секунд, на которое блокируется пользователь/IP при игнорировании предупреждений
}}} 

== Советы ==

=== Доступ к вики через прокси или NAT ===

В случае, если между пользователями находится прокси или маршрутизатор с NAT, отличным от один в один (например, в корпоративной сети или Китае), у пользователей возможны проблемы с защитой от флуда, так как к вики приходят запросы с одного (или некоторого количества фиксированных) IP, что выглядит как действия бота или нерадивого пользователя.

Это ограничение можно обойти, аутентифицировавшись в вики, дабы МойнМойн учитывал запросы отдельных пользователей (в случае, если пользователь аутентифицирован, то счётчики работают по имени учётной записи, не по IP)

Проблемы отсутствуют также в случае, если прокси добавляет в HTTP-запрос заголовок `x-forwarded-for` с реальным IP пользователя.

=== Отключение защиты от флуда ===

(!) Отключать защиту от флуда не рекомендуется. Если она активируется слишком часто, возможно, стоит настроить лимиты. Даже в случае локальной вики пользователь, решивший запустить на вики кравлера, может вызвать проблемы и сделать вики непригодной к использованию.

Для отключения защиты достаточно сделать следующее:
{{{#!python
    surge_action_limits = None # отключает защиту от флуда
}}}
