En esta guía, te proporcionaré algunas ideas sobre cómo implementar el Firewall Shieldon en tu aplicación Yii.
Utiliza PHP Composer:
composer require shieldon/shieldon
Esto también instalará las dependencias necesarias para Shieldon:
En tu archivo public/index.php
, antes de esta línea:
require __DIR__ . '/../vendor/yiisoft/yii2/Yii.php';
Agrega el siguiente código:
Ejemplo:
/*
|--------------------------------------------------------------------------
| Ejecutar el Firewall Shieldon
|--------------------------------------------------------------------------
|
| El Firewall Shieldon vigilará todas las solicitudes HTTP que lleguen a tu sitio web.
| Ejecutar el Firewall Shieldon antes de inicializar Yii evitará posibles conflictos con las funciones incorporadas de Yii.
*/
if (isset($_SERVER['REQUEST_URI'])) {
$storage = __DIR__ . '/../runtime/shieldon';
$firewall = new \Shieldon\Firewall\Firewall();
$firewall->configure($storage);
// La URL base para el panel de control.
$firewall->controlPanel('/firewall/panel/');
$response = $firewall->run();
if ($response->getStatusCode() !== 200) {
$httpResolver = new \Shieldon\Firewall\HttpResolver();
$httpResolver($response);
}
}
Crea un controlador llamado FirewallPanelController
.
Ejemplo:
<?php
namespace app\controllers;
use yii\web\Controller;
class FirewallController extends Controller
{
public function beforeAction($action)
{
$this->enableCsrfValidation = false;
return parent::beforeAction($action);
}
/**
* El punto de entrada del Panel del Firewall.
*
* @return string
*/
public function actionPanel()
{
$panel = new \Shieldon\Firewall\Panel();
$panel->entry();
}
}
Asegúrate de que enablePrettyUrl
esté configurado como true en tu archivo config/web.php
.
Ejemplo:
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => [
'firewall/panel/' => 'firewall/panel',
'firewall/panel/<slug:.*>' => 'firewall/panel',
],
],
Eso es todo.
Puedes acceder al Panel del Firewall visitando /firewall-panel
en tu navegador.
https://yourwebsite.com/firewall-panel
El inicio de sesión predeterminado es shieldon_user
y la contraseña es shieldon_pass
. Después de iniciar sesión en el Panel del Firewall, lo primero que debes hacer es cambiar el inicio de sesión y la contraseña.
Si el Firewall Shieldon está habilitado en la sección de configuración Daemon
, comenzará a monitorear tu sitio web. Asegúrate de haber configurado correctamente los ajustes.