Shieldon\Firewall\Kernel
$ip
)string
$ip -
Одиночный IP-адрес.void
Блокировка IP-адреса.
Пример:
$kernel->ban('33.125.12.87');
string
Возвращает текущий URL. Этот метод эквивалентен $_SERVER['REQUEST_URI']
.
Пример:
echo $kernel->getCurrentUrl();
$type
)string
$type ""
managed | config | demovoid
Сообщает Shieldon, каким образом управляется Shieldon. Этот параметр влияет только на панель Firewall.
Пример:
$kernel->managedBy('demo');
int
Запускает процесс проверки.
Коды ответа:
Константа | Значение | Причина |
---|---|---|
RESPONSE_DENY |
0 | Заблокирован навсегда. |
RESPONSE_ALLOW |
1 | Прошел проверку. |
RESPONSE_TEMPORARILY_DENY |
2 | Временная блокировка, можно разблокировать с помощью Captcha. |
RESPONSE_LIMIT |
3 | Превышен лимит онлайн-сессий. |
Пример:
$result = $kernel->run();
$key
, $closure
)string
$key -
Идентификатор замыкания.Closure
$closure -
Функция замыкания.void
Устанавливает функцию замыкания.
Пример:
$kernel->setClosure('www_authenticate', function() use ($authHandler, $authenticateList) {
$authHandler->set($authenticateList);
$authHandler->check();
});
$uriPath
)string
$uriPath -
Компонент пути URI.void
Устанавливает URL, которые должны быть исключены из защиты.
Пример:
$kernel->exclude('/firewall/panel');
$urls
)array
$urls -
Коллекция URL.void
Устанавливает URL, которые должны быть исключены из защиты.
Пример:
$list = [
'/example/1',
'/wp-login.php',
];
$kernel->setExcludedUrls($list);
$logger
)ActionLogger
$logger -
Регистрирует действия пользователей.void
Устанавливает регистратор действий.
Пример:
$kernel->setLogger(
new \Shieldon\Firewall\Log\ActionLogger(
BOOTSTRAP_DIR . '/../tmp/shieldon'
)
);
$key
, $value
)string
$key -
Название ключа для свойства.mixed
$value -
Значение ключа.void
Пример:
$kernel->setProperty('time_unit_quota', [
's' => 4,
'm' => 20,
'h' => 60,
'd' => 240,
]);
Подробное описание настроек вы можете найти здесь.
$settings
)array
$settings -
Настройки.void
Пример:
$kernel->setProperties($settings);
$bool
)bool
$bool -
Установите true, чтобы включить строгий режим, false - чтобы отключить.void
Пример:
$kernel->setStrict(true);
$ip
)string
$ip -
IP-адрес.void
Разблокировка IP-адреса.
Пример:
$kernel->unban('33.33.33.33');
Shieldon\Firewall\Kernel\CaptchaTrait
$instance
)CaptchaInterface
$instance -
Экземпляр Captcha.void
Установка Captcha. Для подробного использования см. раздел Captcha.
$kernel->setCaptcha(
new \Shieldon\Firewall\Captcha\Recaptcha([
'key' => '6LfkOaUUAAAAAH-AlTz3hRQ25SK8kZKb2hDRSwz9',
'secret' => '6LfkOaUUAAAAAJddZ6k-1j4hZC1rOqYZ9gLm0WQh',
'version' => 'v2',
'lang' => 'en',
])
);
bool
Возвращает результат Captcha.
true
: Captcha успешно решена, false
- в противном случае.
Пример:
$result = $this->captchaResponsse();
void
Отключает все модули Captcha. Этот метод предназначен для модульного тестирования.
Shieldon\Firewall\Kernel\ComponentTrait
$instance
)ComponentProvider
$instance -
Экземпляр компонента.void
Установка компонента.
Пример:
$kernel->setComponent(
new \Shieldon\Firewall\Component\UserAgent()
);
string
$name -
Название класса компонента.void
| ComponentProvider
Получает экземпляр компонента из контейнера компонентов.
Пример:
$useragent = $kernel->getComponent('UserAgent');
void
Отключает все компоненты, даже если они уже были настроены.
Пример:
$kernel->disableComponents();
Shieldon\Firewall\Kernel\DriverTrait
$driver
)DriverProvider
$driver -
Запрос данных из выбранного драйвера.void
Пример:
$dbLocation = APPPATH . 'cache/shieldon.sqlite3';
$pdoInstance = new \PDO('sqlite:' . $dbLocation);
$kernel->setDriver(
new \Shieldon\Firewall\Driver\SqliteDriver($pdoInstance)
);
$channel
)string
$channel -
Укажите канал.void
Пример:
$kernel->setChannel('web_project');
void
Отключает автоматическое создание базы данных.
Пример:
$kernel->disableDbBuilder();
Shieldon\Firewall\Kernel\FilterTrait
$settings
)array
$settings -
Настройки фильтра.void
$kernel->setFilters([
'session' => true,
'cookie' => true,
'referer' => true,
'frequency' => true,
]);
$filterName
, $value
)string
$filterName -
Название фильтра.bool
$value -
True, чтобы включить фильтр, false - в противном случае.void
Пример:
$kernel->setFilter('session', false);
$kernel->setFilter('cookie', false);
$kernel->setFilter('referer', true);
$kernel->setFilter('frequency', false);
Настройки по умолчанию:
Ключ | Тип | Значение | Описание |
---|---|---|---|
session | bool | true | Проверка сессии, созданной драйвером сессий Shieldon. |
cookie | bool | false | Проверка cookie, созданных JavaScript. |
referer | bool | true | Проверка HTTP_REFERER |
frequency | bool | true | Проверка настройки time_unit_quota . |
Фильтр Cookie по умолчанию установлен в false
, поскольку вам необходимо включить фрагмент JavaScript на своих веб-страницах. Фрагмент, созданный getJavascript()
, создаст cookie с помощью JavaScript.
См. getJavascript()
для примера использования.
void
Отключает все фильтры, даже если они уже были настроены.
$kernel->disableFilters();
Shieldon\Firewall\IpTrait
$ip
)string
$ip -
IP-адрес.void
Установка IP-адреса.
Пример:
// Вот пример захвата реального IP-адреса посетителя с CloudFlare.
$realIp = $_SERVER['HTTP_CF_CONNECTING_IP'];
// Если вы используете службу CDN на своем веб-сайте,
// убедитесь, что вы захватываете реальный IP-адрес посетителя, иначе пользователи могут быть заблокированы.
$kernel->setIp($realIp);
string
Возвращает текущий установленный IP.
Пример:
$ip = $kernel->getIp();
$rdns
)string
$rdns -
Обратная DNS-запись для этого IP-адреса.void
Установка записи обратной DNS-записи для проверки.
Пример:
$kernel->setRdns('localhost');
string
Возвращает разрешенное имя хоста для IP.
$rdns = $kernel->getRdns();
Shieldon\Firewall\Kernel\MessengerTrait
$instance
)MessengerInterface
$instance -
Экземпляр мессенджера.void
Пример:
$apiKey = '981441296:AAGCcgv_NETMdWQCBTaMOk_yoMfax5EV7YQ';
$channel = '@your_channel';
$telegramMessenger = new \Messenger\Telegram($apiKey, $channel);
$kernel->setMessenger($telegramMessenger);
Shieldon\Firewall\Kernel\TemplateTrait
$settings
)array
$settings -
Настройки пользовательского интерфейса диалога.void
Настройка пользовательского интерфейса диалога.
Пример:
$settings = [
'lang' => 'en',
'background_image' => '',
'bg_color' => '#ffffff',
'header_bg_color' => '#212531',
'header_color' => '#ffffff',
'shadow_opacity' => '0.2',
];
$kernel->setDialog($settings);
ResponseInterface
Возвращает результат.
Пример:
$response = $kernel->respond();
$directory
)array
$directory -
Каталог, в котором находятся файлы шаблона.void
Установка каталога шаблона фронтенда. Вы можете скопировать эти файлы в каталог и изменить их, чтобы настроить внешний вид диалогов.
Пример:
$kernel->setTemplateDirectory(YOUR_DIRECTORY_PATH);
string
Выводит фрагмент JavaScript на ваших веб-страницах.
Этот фрагмент создает cookie в браузере клиента, а затем мы проверяем cookie, чтобы определить, является ли клиент роботом или нет.
// Выводите эту переменную на вашем шаблоне страницы.
$jsCode = $kernel->getJavascript();
Shieldon\Firewall\Kernel\SessionTrait
$count
, $period
, $unique
)int
$count 1000
Количество онлайн-пользователей. Если достигнуто, пользователи будут в очереди.int
$period 300
Период времени для просмотра пользователей. (в секундах)bool
$unique false
Разрешить только одну сессию на IP-адрес.void
Ограничение онлайн-сессий.
Пример:
$kernel->limitSession(100, 300);
int
Возвращает количество онлайн-пользователей. Если включено limitSession
.
Пример:
$count = $kernel->getSessionCount();