2012-04-25 46 views
0

我有一個表格,我可以編輯和刪除持久化到數據庫的實體類的所有對象。安全刪除對象

當我現在去delete-url:保護刪除的最佳做法是什麼,以便用戶必須確認刪除?

一個簡單的按鈕還是有更好的解決方案嗎?

回答

7

不!不要這樣做!不要提供直接刪除任何內容的URL!

GET請求應該是冪等的,而不是這樣做實際上是violation of the HTTP specification

應用程序中的破壞性操作應作爲POST請求執行。

一個JavaScript驅動的確認對話框是一個不錯的UI功能,但它修復問題!

+0

嗨,我如何在Symfony控制器中做到最好?只能在POST上進行收聽,在請求中編碼POST數據,搜索實體並刪除? – bodokaiser 2012-04-25 17:43:30

+0

是的,您的刪除操作應僅限於POST方法請求,但您還需要更新您的表以生成正確的POST請求。無論您是作爲HTML表單還是作爲AJAX調用來實現,都取決於您。 – 2012-04-25 18:09:10

+0

嗨, 什麼數據應該在發佈請求? id,整個對象? – bodokaiser 2012-04-26 13:06:08

1

您可以使用javascript捕捉按鈕的onclick事件並顯示允許用戶確認刪除的彈出窗口。

1

按鈕上的警報是不夠的。如果URL直接在您的瀏覽器中輸入,則記錄被刪除。您需要確保使用POST動詞進行請求。