В этом руководстве я расскажу вам о том, как реализовать брандмауэр Shieldon в вашем приложении Yii.
Используйте PHP Composer:
composer require shieldon/shieldon
Это также установит зависимости, необходимые для работы Shieldon:
В файле public/index.php
, перед этой строкой:
require __DIR__ . '/../vendor/yiisoft/yii2/Yii.php';
Добавьте следующий код:
Пример:
/*
|--------------------------------------------------------------------------
| Запуск брандмауэра Shieldon
|--------------------------------------------------------------------------
|
| Брандмауэр Shieldon будет отслеживать все HTTP-запросы, поступающие на ваш сайт.
| Запуск брандмауэра Shieldon перед инициализацией Yii позволит избежать возможных
| конфликтов с встроенными функциями Yii.
*/
if (isset($_SERVER['REQUEST_URI'])) {
$storage = __DIR__ . '/../runtime/shieldon';
$firewall = new \Shieldon\Firewall\Firewall();
$firewall->configure($storage);
// Базовый URL для панели управления.
$firewall->controlPanel('/firewall/panel/');
$response = $firewall->run();
if ($response->getStatusCode() !== 200) {
$httpResolver = new \Shieldon\Firewall\HttpResolver();
$httpResolver($response);
}
}
Создайте контроллер с именем FirewallPanelController
.
Пример:
<?php
namespace app\controllers;
use yii\web\Controller;
class FirewallController extends Controller
{
public function beforeAction($action)
{
$this->enableCsrfValidation = false;
return parent::beforeAction($action);
}
/**
* Точка входа в панель управления брандмауэра.
*
* @return string
*/
public function actionPanel()
{
$panel = new \Shieldon\Firewall\Panel();
$panel->entry();
}
}
Убедитесь, что в файле config/web.php
параметр enablePrettyUrl
установлен в значение true.
Пример:
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => [
'firewall/panel/' => 'firewall/panel',
'firewall/panel/<slug:.*>' => 'firewall/panel',
],
],
Вот и всё.
Вы можете получить доступ к панели управления брандмауэра, посетив /firewall-panel
в вашем браузере.
https://yourwebsite.com/firewall-panel
Логин по умолчанию: shieldon_user
, пароль: shieldon_pass
. После входа в панель управления брандмауэра, первое, что следует сделать, это изменить логин и пароль.
Если брандмауэр Shieldon включен в разделе настроек Daemon
, он начнет отслеживать ваш веб-сайт. Убедитесь, что вы правильно настроили параметры.