Fuel

FuelPHP est un framework PHP simple, flexible et piloté par la communauté.

Firewall dans le framework Fuel

Installation

Utilisez PHP Composer :

composer require shieldon/shieldon

Cela installera également les dépendances requises pour Shieldon :

  • shieldon/psr-http L'implémentation PSR-7, 15, 17 avec une documentation complète et des tests approfondis.
  • shieldon/event-dispatcher Le gestionnaire d'événements le plus simple.
  • shieldon/web-security Une collection de fonctions liées à la sécurité web.
  • shieldon/messenger Une collection de modules pour envoyer des messages à des API ou services tiers, tels que Telegram, Line, RocketChat, Slack, SendGrid, MailGun, et plus encore.

Mise en œuvre

Étapes

1. Avant l'initialisation du noyau

Dans votre fichier fuel/app/bootstrap.php, après cette ligne :

require COREPATH.'bootstrap.php';

Ajoutez le code suivant :

Exemple :

/*
|--------------------------------------------------------------------------
| Exécution du pare-feu Shieldon
|--------------------------------------------------------------------------
|
| Le pare-feu Shieldon surveillera toutes les requêtes HTTP arrivant sur votre site web.
|
*/
if (isset($_SERVER['REQUEST_URI'])) {

    // Ce répertoire doit être accessible en écriture.
    // Nous le plaçons dans le répertoire `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);
    }
}

Assurez-vous que le répertoire $storage existe et est accessible en écriture.

2. Définir une route pour le panneau de contrôle du pare-feu

Maintenant, modifiez votre fichier fuel/app/config/routes.php et ajoutez le code suivant :

Exemple :

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

L'exemple complet pourrait ressembler à ceci :

Exemple :

return array(
    '_root_'  => 'welcome/index',  // La route par défaut
    '_404_'   => 'welcome/404',    // La route principale pour les erreurs 404

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

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

C'est tout.

Panneau de contrôle

Vous pouvez accéder au panneau de contrôle du pare-feu à l'adresse /firewall/panel. Pour afficher la page, accédez à cette URL dans votre navigateur :

https://yoursite.com/firewall/panel

La connexion par défaut est shieldon_user, et le mot de passe est shieldon_pass. Après vous être connecté au panneau de contrôle du pare-feu, la première chose à faire est de modifier le nom d'utilisateur et le mot de passe.

Si le pare-feu Shieldon est activé dans la section des paramètres du Daemon, il commencera à surveiller votre site web. Assurez-vous d'avoir correctement configuré les paramètres.