【问题标题】:symfony batch action securitysymfony 批处理操作安全
【发布时间】:2012-01-29 08:27:14
【问题描述】:

我的security.yml

all:
  is_secure: true

new:
  credentials: [add_ticker_source]
edit:
  credentials: [edit_ticker_source]
delete: 
  credentials: [delete_ticker_source]
batchDelete: //I don't know whether it is correct. Should it be batch_delete?
  credentials: [delete_ticker_source]
batch_delete: 
  credentials: [delete_ticker_source]

index: 
  is_secure: false

在我的generator.yml 中,我添加了

  list:
    batch_actions:
      _delete: {credentials: delete_ticker_source}

然后我评论了最后两行并在浏览器中打开了列表视图。因此,在浏览器的列表视图中,我可以在批处理操作的下拉列表中看到删除。现在,我取消了它们的注释并且没有刷新浏览器。我从列表视图中选择了一些元素,在批处理下拉列表中选择了删除并点击go。这些项目会立即被删除。这是否意味着批量删除不安全?或者任何人都可以通过嗅探来删除??

我什至尝试在取消注释后清除缓存,但随后元素也被删除。

附: :不,我登录的用户没有delete_ticker_source 凭据(如网络调试栏所述)。

【问题讨论】:

  • 您的帐户有哪些凭据?
  • @MrGlass :我已经更新了问题。
  • 使用generator.yml 中的此设置并且没有此权限,_delete 批处理操作必须从选择中消失。 batchDelete: credentials: [delete_ticker_source] 也应该可以正常工作。大声思考...您是否将security.yml 放入模块配置文件夹中? ...而且您是否覆盖了模板 _list_batch_actions.php?
  • @macgyver :我认为你误解了这个问题。我评论了最后两行,即基本上做了batch_actions:~所以我可以看到批量删除。然后我取消评论它们并清除缓存。然后我按下去。它没有检查我的权限。为什么?
  • 顺便说一句好主意。但遗憾的是,我没有覆盖批处理模板,security.yml 就在 generator.yml 旁边

标签: php symfony1 symfony-1.4 admin-generator


【解决方案1】:

我尝试了您的设置,但我对这种意外行为感到好奇。所以我浏览了代码,最后我发现要保护batchDelete 操作,我们必须以这种方式将设置放在generator.yml 中,在 config > actions 下:

config:
  actions:
    batchDelete:
      credentials: [user_permission]

显然user_permissiondelete_ticker_source 给你的。

【讨论】:

  • 嗯..你是对的。那么在管理员生成的模块中security.yml 有什么用呢?我的意思是,我们可以在generator.yml 中编写安全设置。其次,这似乎是奇怪的行为。我应该开票吗?
  • 您可以尝试,通过security.ymlgenerator.ymlconfig > 操作 i>,所以我们可以说这是一种冗余,也许通过第一选择,我们会得到一个“更干净”的编码。但是除了这个例外,或者错误(?),我们得到一个“更脏”的编码......也许打开一张票可以解决这个困境。
猜你喜欢
  • 1970-01-01
  • 2017-01-25
  • 2018-05-19
  • 1970-01-01
  • 2011-06-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-13
相关资源
最近更新 更多