Fuel

FuelPHP es un framework PHP simple, flexible y dirigido por la comunidad.

Firewall en el framework Fuel

Instalación

Usa PHP Composer:

composer require shieldon/shieldon

Esto también instalará las dependencias requeridas por Shieldon:

  • shieldon/psr-http La implementación de PSR-7, 15, 17 con documentación completa y pruebas exhaustivas.
  • shieldon/event-dispatcher El despachador de eventos más simple.
  • shieldon/web-security Una colección de funciones relacionadas con la seguridad web.
  • shieldon/messenger Una colección de módulos para enviar mensajes a APIs o servicios de terceros, como Telegram, Line, RocketChat, Slack, SendGrid, MailGun y más.

Implementación

Pasos

1. Antes de inicializar el núcleo

En tu archivo fuel/app/bootstrap.php, después de esta línea:

require COREPATH.'bootstrap.php';

Agrega el siguiente código:

Ejemplo:

/*
|--------------------------------------------------------------------------
| Ejecutar el Firewall de Shieldon
|--------------------------------------------------------------------------
|
| El Firewall de Shieldon vigilará todas las solicitudes HTTP que lleguen a tu sitio web.
|
*/
if (isset($_SERVER['REQUEST_URI'])) {

    // Este directorio debe tener permisos de escritura.
    // Lo ubicamos en el directorio `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);
    }
}

Asegúrate de que el directorio $storage exista y tenga permisos de escritura.

2. Define una ruta para el panel de firewall

Ahora, modifica tu archivo fuel/app/config/routes.php y agrega el siguiente código:

Ejemplo:

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

El ejemplo completo podría verse así:

Ejemplo:

return array(
    '_root_'  => 'welcome/index',  // La ruta predeterminada
    '_404_'   => 'welcome/404',    // La ruta principal de error 404

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

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

Eso es todo.

Panel de control

Puedes acceder al Panel de Firewall en /firewall/panel. Para ver la página, abre esta URL en tu navegador:

https://yoursite.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 de Firewall, lo primero que debes hacer es cambiar el inicio de sesión y la contraseña.

Si el Firewall de Shieldon está habilitado en la sección de configuración de Daemon, comenzará a monitorear tu sitio web. Asegúrate de haber configurado correctamente la configuración.