egulias/security-debug-command-bundle

Symfony 2 安全调试命令

安装次数: 17,996

依赖: 0

建议者: 0

安全: 0

星标: 36

关注者: 5

分支: 3

开放问题: 3

类型:symfony-bundle

0.6.0 2017-04-22 09:30 UTC

This package is auto-updated.

Last update: 2024-09-16 02:35:49 UTC


README

本扩展包提供在 security 命名空间(security:debug:*)下的命令,以简化方式帮助调试您的应用程序安全,通过检查投票者、监听器和(即将推出)ACL。

重要

此扩展包模拟凭据和令牌以检查权限。这可能在您的应用程序中留下安全漏洞,请务必注意。 我对于由此造成的任何滥用或不安全使用不承担任何责任

注意

数据收集器功能将重新发送请求和某些事件,以便检查结果。如果您的任何自定义投票者、监听器或防火墙监听器有副作用,则它们将被执行两次。

使用方法

与任何命令一样,您应该使用:从项目根目录的 app/console。当前可用的命令包括

  • app/console security:debug:firewalls 查看防火墙的监听器。
  • app/console security:debug:voters 显示投票者、投票结果。
  • app/console security:debug:acl_voters 显示存在ACL时的投票者、投票结果。
  • app/console security:debug:acl_object 显示每个掩码的ACL结果。

可用命令

  • app/console security:debug:firewalls uri firewall username roles

  • uri 防火墙中的精确URI

  • firewall 防火墙名称

  • username 要测试的用户

  • roles 用户的多个空格分隔角色

  • app/console security:debug:voters(这也可以被模拟,但到目前为止需要一个真实用户)

  • firewall 应用程序的安全区域

  • username 用于验证的用户名

  • password 用户密码

  • app/console security:debug:acl_voters username object-fqcn id permission-name

  • username 您需要信息的用户

  • object-fqcn 您请求的对象类(使用 / 代替 \

  • id 数据库中的对象ID

  • permission-name 权限映射名称,例如 OWNER

  • app/console security:debug:acl_object username object-fqcn mask-binary

  • username 您需要信息的用户

  • object-fqcn 您请求的对象类(使用 / 代替 \

  • id 数据库中的对象ID

  • mask-binary 掩码的二进制表示,例如 128(OWNER)

示例输出

  • app/console security:debug:firewalls 这里
  • app/console security:debug:voters 这里
  • app/console security:debug:acl_voters 这里
  • app/console security:debug:acl_object 这里

安装和配置

获取扩展包

将其添加到 composer.json 中

{
    "require": {
        "egulias/security-debug-command-bundle": "0.5.0"
    }
}

使用 composer 下载新的依赖项

$ php composer.phar update egulias/security-debug-command-bundle

将 SecurityDebugCommandBundle 添加到您的应用程序内核

<?php

  // app/AppKernel.php
  public function registerBundles()
  {
    // ...
    if (in_array($this->getEnvironment(), array('dev', 'test'))) { 
      $bundle[] = Egulias\SecurityDebugCommandBundle\EguliasSecurityDebugCommandBundle();
    }
    // ...
  }

配置用户类

在您的 app/config/config.yml 中,您应该添加您使用的 FQCN

egulias_security_debug_command:
    user_class: Acme\DemoBundle\Entity\User