egulias / security-debug-command-bundle
Symfony 2 安全调试命令
Requires
- php: >=5.3.3
- symfony/symfony: >=2.3
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