Hablemos de su proyecto
PHP symfony Sonata

Sonata Extra Bundle: cortafuegos de aplicaciones

El SonataExtraBundle proporciona un conjunto de funcionalidades mejoradas para la gestión de las reglas de firewall en el entorno Sonata Admin. Este bundle permite a los administradores crear y gestionar reglas para filtrar las solicitudes según diferentes criterios como palabras prohibidas, direcciones IP y agentes de usuario.

Contrôles de compatibilité Symfony et Sonata

El SonataExtraBundle proporciona un conjunto de funcionalidades mejoradas para la gestión de las reglas de firewall en el entorno Sonata Admin. Este bundle permite a los administradores crear y gestionar reglas para filtrar las solicitudes según diferentes criterios como palabras prohibidas, direcciones IP y agentes de usuario.

Funcionalidades

  • Gestión de reglas del cortafuegos: Definir y gestionar las reglas del cortafuegos para filtrar las solicitudes entrantes.
  • Soporte para múltiples criterios: filtrar las solicitudes según palabras prohibidas, direcciones IP y agentes de usuario.
  • Aplicación dinámica de las reglas: Aplicar las reglas en función de los parámetros de la solicitud (GET, POST, encabezados).
  • Integración de la caché: las reglas se almacenan en caché para mejorar el rendimiento con la posibilidad de reiniciar la caché durante las actualizaciones.
  • Análisis de datos recursivo: gestionar estructuras de datos complejas en los parámetros de consulta.

Activación

Agregue el receptor del cortafuegos en su services.yaml

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

Agregue interfaces administrativas en su sonata_admin.yaml

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

Creación de reglas de firewall

Las reglas de firewall pueden ser creadas y gestionadas a través del panel de control de Sonata Admin. Se admiten los siguientes tipos de reglas:

  • Palabra prohibida: Bloquear las solicitudes que contengan palabras clave especificadas.
  • IP: Bloquear las solicitudes provenientes de las direcciones IP especificadas.
  • Agente de usuario: Bloquear las solicitudes provenientes de los agentes de usuario especificados.

Configuración de reglas

Cada regla se compone de los siguientes elementos:

  • type : tipo de regla (por ejemplo, 'palabra_prohibida', 'ip', 'agente_de_usuario').
  • source : fuente de los datos a analizar (por ejemplo, 'GET', 'POST', 'HEADER').
  • parameters : lista de valores a verificar con respecto a la regla.
  • matchMode : determina si la regla debe buscar una coincidencia exacta (equal) o una coincidencia parcial (contain).

Gestión de la caché

El paquete utiliza la caché para mejorar el rendimiento. La caché se reinicia automáticamente cada vez que se actualiza, crea o elimina una regla.

Controles de compatibilidad de Symfony y Sonata

Adaptar el ejemplo a la versión instalada

Los ejemplos de Symfony y Sonata permanecen ligados a las versiones indicadas en el artículo. Symfony 4.x y Symfony 6.2 ya no se mantienen: para un proyecto actual, utilice una rama mantenida y la documentación que corresponda exactamente a sus dependencias.

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

Antes de retomar el código, controle las firmas, los servicios, las rutas y las plantillas correspondientes. Después, agregue una prueba funcional que cubra los permisos, el código HTTP y el resultado visible.

Referencia: versiones de Symfony mantenidas.

Compartir este artículo