CakePHP

CakePHP è un framework web open-source ampiamente utilizzato che segue il pattern architetturale MVC. È molto apprezzato nella comunità PHP e offre una serie di funzionalità e strumenti per la costruzione di applicazioni web.

Questa guida è stata testata con successo nella versione 3.8 di CakePHP. Tuttavia, dovrebbe essere applicabile anche alle versioni precedenti del framework.

Firewall nel framework CakePHP

Installazione

Utilizza PHP Composer:

composer require shieldon/shieldon

Ciò installerà anche le dipendenze richieste da Shieldon:

  • shieldon/psr-http L'implementazione di PSR-7, 15, 17 con documentazione completa e test approfonditi.
  • shieldon/event-dispatcher Il dispatcher di eventi più semplice.
  • shieldon/web-security Una raccolta di funzioni legate alla sicurezza web.
  • shieldon/messenger Una raccolta di moduli per l'invio di messaggi a API o servizi di terze parti, come Telegram, Line, RocketChat, Slack, SendGrid, MailGun, e altro ancora.

Implementazione

CakePHP 3

Il passo 1 e il passo 2 vengono applicati allo stesso file situato in /config/route.php.

Entrambi il passo 1 e il passo 2 comportano la modifica dello stesso file situato in /config/routes.php. Pertanto, è necessario eseguire i seguenti passaggi all'interno di quel file:

  • Apri il file /config/routes.php.
  • Trova la sezione in cui definisci le route della tua applicazione.
  • Implementa le modifiche descritte nel passo 1 e nel passo 2 secondo le istruzioni fornite.
  • Salva le modifiche nel file /config/routes.php.

Seguendo questi passaggi, assicurerai che entrambe le modifiche vengano apportate al file corretto.

1. Registrare un Middleware

È disponibile un middleware per CakePHP qui. Registrane uno nella tua applicazione.

Esempio:

/**
 * Applica il firewall Shieldon all'ambito del percorso corrente.
 */
$routes->registerMiddleware(
    'firewall',
    new \Shieldon\Firewall\Integration\CakePhp()
);

$routes->applyMiddleware('firewall');

2. Definire una Route per il Pannello del Firewall

Esempio:

/**
 * Definisci la route per il pannello del firewall.
 */
$routes->connect('/firewall/panel/', [
    'controller' => 'FirewallPanel',
    'action' => 'entry'
]);

3. Creare un Controller per il Pannello del Firewall

Crea un controller chiamato FirewallPanelController e aggiungi il seguente codice.

Esempio:

$panel = new \Shieldon\Firewall\Panel();
$panel->entry();
exit;

Se hai CSRF abilitato, aggiungi queste righe:

Esempio:

$panel->csrf(
    '_csrfToken',
    $this->request->getParam('_csrfToken')
);

L'esempio completo sarà così:

Esempio:

<?php

namespace App\Controller;

class FirewallPanelController extends AppController
{
    /**
     * Questo è l'ingresso del nostro Pannello del Firewall.
     */
    public function entry()
    {
        // Accedi al Pannello del Firewall.
        $panel = new \Shieldon\Firewall\Panel();

        $panel->csrf([
            '_csrfToken' => $this->request->getParam('_csrfToken')
        ]);

        $panel->entry();
        exit;
    }
}

Questo è tutto.

Puoi accedere al Pannello del Firewall all'indirizzo /firewall/panel. Per visualizzare la pagina, apri questo URL nel tuo browser.

Pannello di Controllo

https://for.example.com/firewall/panel

Il login predefinito è shieldon_user, e la password è shieldon_pass. Dopo aver effettuato l'accesso al Pannello del Firewall, la prima cosa da fare è cambiare il login e la password.

Se il Firewall Shieldon è abilitato nella sezione delle impostazioni del "Daemon", inizierà a monitorare il tuo sito web. Assicurati di avere configurato correttamente le impostazioni.