manuelj555/dev-access-bundle

在使用 app_dev.php 时添加安全性

安装次数: 1,554

依赖者: 0

建议者: 0

安全性: 0

星标: 0

关注者: 2

分支: 0

公开问题: 0

类型:symfonybundle

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

This package is auto-updated.

Last update: 2024-09-22 03:17:25 UTC


README

此包允许保护Symfony项目中app_dev.php的访问,目的是仅允许授权用户通过此方式访问。

注意 该项目已配置为在Symfony 2.8和Symfony 3上运行。

安装

执行

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

在AppKernel中注册Bundle

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

app/config/routing.yml 中添加

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

最后,调整app_dev.php文件如下

...
// 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();

这样,Bundle就已经配置好了

访问配置路径

要管理访问,需要访问

/admin/dev-access/config

额外配置

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

重要

在app_dev.php中添加行 Manuel\Bundle\DevAccessBundle\Security\Access::check(__DIR__.'/var/cache'); 时,作为参数传递的路由必须与Bundle配置中的相同。