2011-12-28 76 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