【发布时间】:2016-02-03 18:07:39
【问题描述】:
我们正在使用带有 CakeDC Users plugin 的 CakePHP v3.1.x。
我们正在尝试设置我们的单元测试,以帮助防止意外允许非管理员做他们不应该做的事情。例如,假设开发人员使用控制器中的新操作创建了新的管理功能。在开发过程中,她将权限设置得非常宽松,因此她不必每次都登录来测试它(或其他什么……你明白了)。我正在尝试编写一个测试,如果她试图推动这个,它将失败......
这是我的想法:
- 创建一个循环遍历应用中所有控制器/操作的测试,并检查非管理员用户是否已获得授权。
- 测试列出了非管理员用户可以执行的所有操作。
- 如果允许非管理员执行不在列表中的任何操作,则测试失败。
这个想法是,每次我们故意让非管理员用户做某事时,测试都会失败,并提醒我们去更新异常列表。但是如果我们在不知情的情况下不小心允许了一个动作,测试就会失败,我们会修复错误。这是一个安全隐患。
我的问题:这是正确的做法吗?如果是这样,我们如何动态生成所有应用程序控制器/操作的列表?
【问题讨论】:
标签: unit-testing cakephp permissions authorization cakephp-3.0