2011-12-28 77 views
2

security.ymlsymfony的批量操作安全

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。这些项目会立即被删除。这是否意味着批量删除不安全?或者任何人都可以通过嗅探周围?

我甚至在取消注释后尝试清除缓存,但随后也删除了这些元素。

P.S. :并且不,我登录的用户没有delete_ticker_source凭据(如web调试栏所述)。

+0

您的帐户拥有哪些凭据? – MrGlass 2011-12-28 17:26:22

+0

@MrGlass:我已经更新了这个问题。 – prongs 2011-12-28 17:27:49

+1

如果在'generator.yml'中没有此权限的设置,'_delete'批处理操作必须从select中消失。 'batchDelete:credentials:[delete_ticker_source]'应该可以正常工作。大声思考......你把'security.yml'放在模块配置文件夹中了吗? ...你是否也覆盖了模板_list_batch_actions.php? – macgyver 2011-12-29 00:22:19

回答

1

我尝试了您的设置,但我很想知道这种意外的行为。于是我上网里面的代码,最后我发现,以固定batchDelete行动,我们必须把generator.yml内设置这样,下配置>行动

config: 
    actions: 
    batchDelete: 
     credentials: [user_permission] 

Obiviously user_permissiondelete_ticker_source你。

+0

一样。你说得对。那么在admin生成的模块中有什么用'security.yml'?我的意思是,我们可以在'generator.yml'中编写安全设置。其次,这似乎是奇怪的行为。我应该打开一张票吗? – prongs 2011-12-29 12:00:53

+0

正如你可以尝试的那样,通过'security.yml'保护'new','edit'和(不批处理)'delete'动作,并且通过* config> actions *下的'generator.yml'工作,所以我们可以这样说是一种冗余,也许首先我们得到一个“更清洁”的编码。但有了这个例外,或者错误(?),我们会得到一个“更加肮脏”的编码......也许开张票可以消除这种困境。 – macgyver 2011-12-29 13:12:04