welcome: please sign in

Upload page content

You can upload content for the page named below. If you change the page name, you can also upload content for another page. If the page name is empty, we derive the page name from the file name.

File to load page content from
Page name
Comment
Шрифты

location: КакНастраивать / ЗащитаОтФлуда

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

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

Данная ситуация может быть вызвана следующими факторами:

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

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

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

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

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

Настройка

Настройка механизма защиты от флуда выполняется посредством указания параметров в конфигурации вики. Ниже представлены значения по умолчанию:

   1     surge_action_limits = { 
   2         # допускается не более <количество> запросов, вызывающих <действие> за <период времени> секунд
   3         # Формат:
   4         # действие:    (количество, период времени)
   5         'all':                 (30,  30), # суммарный лимит на все запросы (кроме запросов к кэшу и действию AttachFile)
   6         'default':             (30,  60), # лимит для действий по умолчанию
   7         'show':                (30,  60), # показ страницы
   8         'recall':              (10, 120), # показ старой версии страницы
   9         'raw':                 (20,  40), # иногда CSS хранится в виде страницы на вики
  10         'diff':                (30,  60), # просмотр различий
  11         'fullsearch':          (10, 120), # выполнение поискового запроса
  12         'edit':                (30, 300), # редактирование; возможно, лимит будет уменьшен с разделением предварительного просмотра и редактирования
  13         'rss_rc':               (1,  60), # получение rss
  14 
  15         # Данные действия часто используются для изображений — для предотвращения срабатывания ограничений
  16         # на страницах с большим количеством ихображений (например, галереях изображений) для этих действий
  17         # установлены достаточно высокие лимиты
  18         'AttachFile':         (300,  30), # работа с прикреплёнными файлами
  19         'cache':              (600,  30), # запросы к кэшу всегда дешёвые
  20     }
  21     surge_lockout_time = 3600          # количество секунд, на которое блокируется пользователь/IP при игнорировании предупреждений

Советы

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

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

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

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

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

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

Для отключения защиты достаточно сделать следующее:

   1     surge_action_limits = None # отключает защиту от флуда