Брандмауэр 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 | "" |
Эта настройка позволяет вам определять лимиты просмотра страниц для пользователей вашего сайта на основе определенной временной единицы. Ключи массива - это '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
.