Часто задаваемые вопросы

Если вы обнаружили какую-либо ошибку, пожалуйста, опишите ее в отчете о проблеме.

Часто задаваемые вопросы

Можно ли ограничить количество сессий только для определенной страницы?

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

После отключения "Ограничения онлайн-сессий" вы можете использовать общедоступное API Shieldon. Например, рассмотрим следующий код:

if (strpos($_SERVER['REQUEST_URI'], 'faq/online-session-limit.html') !== false) {
    $firewall->getKernel()->limitSession(5, 300);
}

Эта страница ограничивает максимальное количество пользователей до 5, каждый пользователь может просматривать страницу в течение 300 секунд.

Когда пользователь открывает эту страницу и количество пользователей достигает предела, будет отображен диалог, подобный показанному на скриншоте:

Как заблокировать все IP-адреса для конкретного URL?

Я не включил функцию "Блокировать все" в Панель брандмауэра, чтобы предотвратить блокировку всех IP-адресов, связанных с URL "/". Это заблокировало бы все URL, включая доступ к Панели брандмауэра. Вместо этого рекомендуется использовать менеджер IP и настроить конкретный диапазон IP по мере необходимости.

Если вы хотите заблокировать все IP-адреса для конкретного URL, следующий код поможет вам:

// Разместите этот код перед $firewall->run();
if (strpos($_SERVER['REQUEST_URI'], 'example/block-all.html') !== false) {
    $firewall->getKernel()->getComponent('Ip')->denyAll();
}

Это пример страницы, которая блокирует все IP-адреса от доступа к ней.

Когда пользователь будет заблокирован, ему будет показан диалог, аналогичный показанному на скриншоте.

Предупреждение: Если вы щелкнете на этой ссылке-примере, вы будете заблокированы от доступа к этому сайту. Вам придется подождать 60 минут, пока блокировка не будет снята.

Какие учетные данные по умолчанию для Панели брандмауэра?

Имя пользователя по умолчанию - shieldon_user, пароль - shieldon_pass. После входа в Панель брандмауэра первое, что вы должны сделать, это изменить имя пользователя и пароль.

Может ли брандмауэр Shieldon действительно смягчить DDoS-атаку?

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

Давайте рассмотрим простой пример. Предположим, что размер средней страницы вашего веб-сайта составляет 3 МБ, а у вашего сервера пропускная способность составляет 100 Мбит/с. Ваш сервер может обрабатывать скорость передачи данных около 12,5 МБ/с. Если кто-то решит злонамеренно атаковать ваш сайт, сколько атакующих источников потребуется, чтобы перегрузить ваш сервер? Это даже не учитывает потенциальную нагрузку на ваши соединения MySQL.

Брандмауэр Shieldon прерывает эти злонамеренные соединения, возвращая страницу CAPTCHA размером менее 50 КБ. Он приостанавливает выполнение дополнительных PHP-скриптов, предотвращая дальнейшие соединения MySQL. Таким образом, брандмауэр Shieldon может сэкономить память и использование ЦП, когда ваш сайт находится под атакой. Однако это всего лишь стратегия смягчения HTTP-типов DDoS-атак, а не окончательное решение.