// добавляем пользователя в стоп-лист
Теги: стоп-лист, CSecurityIPRule
22.04.2025
if($flag_BL){
// Подключаем модуль security
Loader::includeModule('security');
// Параметры для добавления IP в стоп-лист
if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
$ip = $_SERVER['REMOTE_ADDR'];
}
$ruleName = 'spam bot'; // Название правила
$siteId = 's1'; // ID сайта (если используется мультисайт)
$action = 'D'; // D - запрет, A - разрешение
// Текущая дата
$currentDate = new \Bitrix\Main\Type\DateTime();
$activeFrom = $currentDate->toString(); // Дата начала действия правила
// Дата окончания (текущая дата + 3 месяца)
$activeTo = $currentDate->add('3 months')->toString(); // Дата окончания действия правила
$rule = new CSecurityIPRule();
// Добавляем правило
$arFields = array(
//"NAME" => "spam bot",
'RULE_TYPE' => 'A', // Тип правила: A - автоматическое, M - ручное
'ACTIVE' => 'Y',
'ADMIN_SECTION' => 'N', // Блокировать ли администраторов
'NAME' => $ruleName,
'ACTIVE_FROM' => $activeFrom, // Дата начала действия
'ACTIVE_TO' => $activeTo, // Дата окончания действия
'INCL_IPS' => [$ip], // Список IP-адресов для блокировки
'EXCL_IPS' => [], // Исключения (если нужны)
'INCL_MASKS' => ['/*'], // Маски включения (если нужны)
'EXCL_MASKS' => [], // Маски исключения (если нужны)
'SORT' => 100, // Сортировка
'SITE_ID' => $siteId, // ID сайта
'ACTION' => $action, // D - запрет, A - разрешение
);
global $USER;
if(!$USER->IsAdmin()){
$result = $rule->Add($arFields);
}
if ($result) {
echo "IP-address ".$ip." add to stop-list to " . $activeTo;
} else {
echo "Error to add IP-address: " . $GLOBALS['APPLICATION']->GetException();
}
//DIE;
}
Теги: стоп-лист, CSecurityIPRule
22.04.2025


