manuelj555/dev-access-bundle

Agregar seguridad al usar app_dev.php

Installs: 1 554

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 2

Forks: 0

Open Issues: 0

Type:symfonybundle

0.1.x-dev 2018-11-09 20:02 UTC

This package is auto-updated.

Last update: 2024-10-22 03:30:33 UTC


README

Este bundle permite proteger el accesso a app_dev.php en los proyectos Symfony, con la finalidad de que solo usuarios autorizados puedan acceder por este medio.

NOTA El proyecto se ha configurado para funcionar en Symfony 2.8 y Symfony 3.

Instalación

Ejecutar

composer require manuelj555/dev-access-bundle ~0.1@dev

Registrar el Bundle en el AppKernel:

public function registerBundles()
{
    $bundles = array(
        ...
        new Manuel\Bundle\DevAccessBundle\DevAccessBundle(),
    );
    
    ...
}

En el app/config/routing.yml agregar:

dev_access:
    resource: "@DevAccessBundle/Controller/"
    type:     annotation
    prefix:   /admin

Y por último ajustar el archivo app_dev.php de la siguiente manera:

...
// Comentar las lineas que verifican el acceso local
//if (isset($_SERVER['HTTP_CLIENT_IP'])
//    || isset($_SERVER['HTTP_X_FORWARDED_FOR'])
//    || !(in_array(@$_SERVER['REMOTE_ADDR'], ['127.0.0.1', '::1'], true) || PHP_SAPI === 'cli-server')
//) {
//    header('HTTP/1.0 403 Forbidden');
//    exit('You are not allowed to access this file. Check '.basename(__FILE__).' for more information.');
//}

// y agregar debajo de la carga del autoload lo siguiente:
require __DIR__.'/../vendor/autoload.php';
Manuel\Bundle\DevAccessBundle\Security\Access::check(__DIR__.'/var/cache'); // Agregar esta linea

Debug::enable();

y con eso ya el bundle ha quedado configurado:

Ruta de configuración de acceso

Para administrar los accesos se debe acceder a:

/admin/dev-access/config

Configuración adicional

dev_access:
    roles:       # Roles con acceso al modulo de administracion
        - ROLE_ADMIN
    users:   # Usuarios especificos con acceso al modulo de administracion
        - admin
    sessions_path: '%kernel.project_dir%/var/cache'   # Ruta donde se van a generar los archivos de sesion
    environment: dev         # entorno en el que se está trabajando con acceso restringido

Importante

En el app_dev.php al añadir la linea Manuel\Bundle\DevAccessBundle\Security\Access::check(__DIR__.'/var/cache'); la ruta pasada como argumento debe ser la misma que la colocada en la configuracion del bundle.