Parliamo del progetto
PHP symfony Sonata

Sonata Extra Bundle: firewall applicativo

Il SonataExtraBundle fornisce un insieme di funzionalità migliorate per la gestione delle regole del firewall nell'ambiente Sonata Admin. Questo bundle permette agli amministratori di creare e gestire regole per filtrare le richieste in base a diversi criteri come parole vietate, indirizzi IP e agenti utente.

Contrôles de compatibilité Symfony et Sonata

Il SonataExtraBundle fornisce un insieme di funzionalità migliorate per la gestione delle regole del firewall nell'ambiente Sonata Admin. Questo bundle permette agli amministratori di creare e gestire regole per filtrare le richieste in base a diversi criteri come parole vietate, indirizzi IP e agenti utente.

Funzionalità

  • Gestione delle regole del firewall: Definire e gestire le regole del firewall per filtrare le richieste in arrivo.
  • Supporto per più criteri: filtrare le richieste in base alle parole vietate, agli indirizzi IP e agli agenti utente.
  • Applicazione dinamica delle regole: Applicare le regole in base ai parametri della richiesta (GET, POST, intestazioni).
  • Integrazione della cache: le regole sono memorizzate nella cache per migliorare le prestazioni con la possibilità di resettare la cache durante gli aggiornamenti.
  • Analisi dei dati ricorsiva: gestire strutture di dati complesse nei parametri di richiesta.

Attivazione

Aggiungi il listener del firewall nel tuo services.yaml

    sonata-extra.Firewall_Listener:
        class: Partitech\SonataExtra\EventListener\FirewallListener
        tags:
            - { name: kernel.event_listener, event: kernel.request, method: onKernelRequest }

Aggiungi interfacce amministrative nel tuo sonata_admin.yaml

            firewall:
                icon: fa fa-cogs
                label: Firewall
                items:
                    - Partitech\SonataExtra\Admin\SecFirewallRuleAdmin
                    - Partitech\SonataExtra\Admin\SecStopWordAdmin
                    - Partitech\SonataExtra\Admin\SecIpRuleAdmin

Creazione di regole del firewall

Le regole del firewall possono essere create e gestite tramite il pannello di controllo Sonata Admin. Sono supportati i seguenti tipi di regole:

  • Parola vietata: Bloccare le richieste contenenti parole chiave specificate.
  • IP: Bloccare le richieste provenienti dagli indirizzi IP specificati.
  • Agente utente: Bloccare le richieste provenienti dagli agenti utente specificati.

Configurazione delle regole

Ogni regola è composta dagli elementi seguenti:

  • type : tipo di regola (ad esempio, 'stop_word', 'ip', 'user_agent').
  • source : fonte dei dati da analizzare (ad esempio, 'GET', 'POST', 'HEADER').
  • parameters : elenco di valori da verificare rispetto alla regola.
  • matchMode : determina se la regola deve cercare una corrispondenza esatta (equal) o una corrispondenza parziale (contain).

Gestione della cache

Il bundle utilizza la cache per migliorare le prestazioni. La cache viene automaticamente reimpostata ogni volta che una regola viene aggiornata, creata o eliminata.

Controlli di compatibilità Symfony e Sonata

Adattare l’esempio alla versione installata

Gli esempi Symfony e Sonata rimangono legati alle versioni indicate nell’articolo. Symfony 4.x e Symfony 6.2 non sono più supportati: per un progetto attuale, utilizzate un ramo mantenuto e la documentazione corrispondente esattamente alle vostre dipendenze.

php bin/console about
composer show symfony/framework-bundle sonata-project/admin-bundle

Prima di riprendere il codice, controllate le firme, i servizi, le rotte e i template interessati. Aggiungete poi un test funzionale che copra le autorizzazioni, il codice HTTP e il risultato visibile.

Riferimento : versioni di Symfony supportate.

Condividi questo articolo