Конфигурация

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

Вы можете настроить эти параметры при инициализации экземпляра Shieldon или позже, используя API setProperty или setProperties.

Инициализация

$config = [
    'time_unit_quota' => [
        ['s' => 2, 'm' => 10, 'h' => 30, 'd' => 60]
    ]
];

$kernel = new \Shieldon\Shieldon($config);

setProperty

$kernel->setProperty('time_unit_quota', [
    's' => 2, 'm' => 10, 'h' => 30, 'd' => 60
]);

setProperties

$config = [
    'time_unit_quota' => [
        ['s' => 2, 'm' => 10, 'h' => 30, 'd' => 60]
    ]
];

$kernel->setProperties($config);

Значения по умолчанию

ключ тип значение
time_unit_quota массив ['s' => 2, 'm' => 10, 'h' => 30, 'd' => 60]
time_reset_limit integer 3600
interval_check_referer integer 5
interval_check_session integer 30
limit_unusual_behavior массив ['cookie' => 5, 'session' => 5, 'referer' => 10]
cookie_name string ssjd
cookie_domain string ""

Параметры

time_unit_quota

Эта настройка позволяет вам определять лимиты просмотра страниц для пользователей вашего сайта на основе определенной временной единицы. Ключи массива - это 's' (секунда), 'm' (минута), 'h' (час) и 'd' (день), каждый ключ соответствует лимиту просмотра страниц на пользователя для этой временной единицы. По умолчанию ['s' => 2, 'm' => 10, 'h' => 30, 'd' => 60]

  • массив
ключ значение описание
s integer Просмотры страниц на посетителя за секунду
m integer Просмотры страниц на посетителя за минуту
h integer Просмотры страниц на посетителя за час
d integer Просмотры страниц на посетителя за день
  • Если вы просто хотите ограничить пользователя просмотром 100 страниц в день, просто установите s, m, h на очень большое число и установите d на 100.

  • Помните, что когда пользователи достигают лимита, они просто временно блокируются, они могут быть разблокированы, решив Captcha, поэтому не устанавливайте значения слишком лояльно, иначе нет смысла использовать эту библиотеку.

time_reset_limit

Это время в секундах, через которое сбрасывается количество отмеченных фильтров. Значение по умолчанию - 3600 (1 час).

interval_check_referer

Подобно interval_check_referer, это свойство устанавливает задержку в секундах, прежде чем Shieldon начинает проверять SESSION куки для пользователя. По умолчанию это 30 секунд.

Когда пользователь в первый раз посещает ваш сайт, вводя URL в браузер, HTTP_REFERER пуст. После interval_check_referer секунд, Shieldon начинает проверять HTTP_REFERER.

Вы можете проигнорировать это значение.

interval_check_session

Когда пользователь впервые посещает ваш сайт, после interval_check_session секунд, Shieldon начинает проверять SESSION куки.

limit_unusual_behavior

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

По умолчанию ['cookie' => 5, 'session' => 5, 'referer' => 10].

Установка лимитов и квот для определения необычного поведения для ваших посетителей на вашем сайте.

  • массив
ключ значение описание
cookie integer Куки, созданные с помощью JavaScript.
session integer PHP Session
referer integer HTTP_REFERER

cookie_name

Это свойство используется для указания имени куки, которое использует Shieldon. По умолчанию ssjd.

cookie_domain

Это свойство определяет домен, к которому ограничено использование куки. По умолчанию куки доступны всем поддоменам на сервере.

deny_attempt_enable

Если вы включите эту опцию, Shieldon будет записывать каждую последовательную неудачу CAPTCHA. Как только пользователь достигнет указанного лимита, Shieldon классифицирует их как заблокированный IP в таблице правил, который сохраняется до начала нового цикла данных.

Даже когда заблокированы, пользователи все еще могут получить доступ к странице предупреждения о брандмауэре, где они могут подать заявку на разблокировку.

Однако, если они постоянно не могут решить CAPTCHA, это, скорее всего, означает, что они не являются человеком. В ответ Shieldon добавляет их в системный фаервол, эффективно навсегда блокируя их.

По умолчанию:

'deny_attempt_enable' => [
        'data_circle'     => false,
        'system_firewall' => false,
    ],

record_attempt_detection_period

Чтобы предотвратить добавление ботов социальных платформ в брандмауэр iptables, таких как Facebook, Line и другие, которые сканируют снимки с ваших веб-страниц, вы должны настроить значения ниже, чтобы они соответствовали вашим потребностям. (Единица измерения: секунды)

По умолчанию:

'record_attempt_detection_period' => 5,

reset_attempt_counter

Этот параметр определяет, через сколько времени (в секундах) счетчик попыток будет сброшен. В данном случае счетчик сбрасывается каждые 30 минут.

По умолчанию:

'reset_attempt_counter' => 1800,

iptables_watching_folder

Этот параметр - это каталог, который служба iptables отслеживает для команд от брандмауэра Shieldon. В данном случае он отслеживает временный каталог '/tmp/'.

Другое

Для любых свойств, не упомянутых здесь, вы можете обратиться к функции get_default_properties() в классе Shieldon\Firewall\Helpers.

/**
 * Настройки Shieldon по умолчанию.
 *
 * @return array
 */
function get_default_properties(): array
{
    return [
        'time_unit_quota' => [
            's' => 2,
            'm' => 10,
            'h' => 30,
            'd' => 60
        ],
        'time_reset_limit' => 3600,
        'interval_check_referer' => 5,
        'interval_check_session' => 5,
        'limit_unusual_behavior' => [
            'cookie' => 5,
            'session' => 5,
            'referer' => 10
        ],
        'cookie_name' => 'ssjd',
        'cookie_domain' => '',
        'cookie_value' => '1',
        'display_online_info' => true,
        'display_user_info' => false,
        'display_http_code' => false,
        'display_reason_code' => false,
        'display_reason_text' => false,
        'deny_attempt_enable' => [
            'data_circle' => false,
            'system_firewall' => false,
        ],
        'deny_attempt_notify' => [
            'data_circle' => false,
            'system_firewall' => false,
        ],
        'deny_attempt_buffer' => [
            'data_circle' => 10,
            'system_firewall' => 10,
        ],
        'record_attempt_detection_period' => 5,
        'reset_attempt_counter' => 1800,
        'iptables_watching_folder' => '/tmp/',
    ];
}

Примечание: Вы можете установить эти свойства либо во время инициализации экземпляра Shieldon, либо позже, используя API setProperty или setProperties.