Fuel

FuelPHP - это простой, гибкий и разрабатываемый сообществом веб-фреймворк на PHP.

Firewall в фреймворке Fuel

Установка

Используйте PHP Composer:

composer require shieldon/shieldon

Это также установит зависимости, необходимые для Shieldon:

  • shieldon/psr-http Реализация PSR-7, 15, 17 с полной документацией и обширными тестами.
  • shieldon/event-dispatcher Простейший диспетчер событий.
  • shieldon/web-security Набор функций, связанных с веб-безопасностью.
  • shieldon/messenger Набор модулей для отправки сообщений в сторонние API или сервисы, такие как Telegram, Line, RocketChat, Slack, SendGrid, MailGun и многие другие.

Внедрение

Шаги

1. Перед инициализацией ядра

В вашем файле fuel/app/bootstrap.php, после этой строки:

require COREPATH.'bootstrap.php';

Добавьте следующий код:

Пример:

/*
|--------------------------------------------------------------------------
| Запуск брандмауэра Shieldon
|--------------------------------------------------------------------------
|
| Брандмауэр Shieldon будет отслеживать все HTTP-запросы, поступающие на ваш сайт.
|
*/
if (isset($_SERVER['REQUEST_URI'])) {

    // Этот каталог должен быть доступен для записи.
    // Мы помещаем его в каталог `fuel/app/tmp`.
    $storage = __DIR__ . '/tmp/shieldon_firewall';

    $firewall = new \Shieldon\Firewall\Firewall();
    $firewall->configure($storage);
    $firewall->controlPanel('/firewall/panel');

    $response = $firewall->run();

    if ($response->getStatusCode() !== 200) {
        $httpResolver = new \Shieldon\Firewall\HttpResolver();
        $httpResolver($response);
    }
}

Убедитесь, что каталог $storage существует и доступен для записи.

2. Определение маршрута для панели брандмауэра

Теперь измените ваш файл fuel/app/config/routes.php и добавьте следующий код:

Пример:

'firewall/panel(:everything)' => function () {
    $panel = new \Shieldon\Firewall\Panel();
    $panel->entry();
},

Полный пример может выглядеть так:

Пример:

return array(
    '_root_'  => 'welcome/index',  // Маршрут по умолчанию
    '_404_'   => 'welcome/404',    // Основной маршрут для ошибки 404

    'hello(/:name)?' => array('welcome/hello', 'name' => 'hello'),

    'firewall/panel(:everything)' => function () {
        $panel = new \Shieldon\Firewall\Panel();
        $panel->entry();
    },
);

Вот и все.

Панель управления

Вы можете получить доступ к панели брандмауэра по адресу /firewall/panel. Чтобы просмотреть страницу, перейдите по этому URL в вашем браузере:

https://yoursite.com/firewall/panel

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

Если брандмауэр Shieldon включен в разделе настройки Daemon, он начнет мониторить ваш сайт. Убедитесь, что вы правильно настроили настройки.