2011-09-15 132 views
1

作爲網絡開發領域的新手,我有一些關於網頁設計的一般問題,這裏就是其中之一。GET或POST刪除

我正在爲我的網站實現一個簡單的地址簿。它應該允許用戶添加/修改/刪除地址。對於刪除,我不清楚我應該如何實施它。我應該使用GET還是POST將所需的信息傳遞給服務器?

我認爲這是更安全的使用POST刪除,但當亞馬遜的實施似乎反對(下)。我對使用哪種方法感到困惑,或者它甚至很重要?

亞馬遜的做法對地址刪除

http://www.amazon.com/gp/css/account/address/view.html?ie=UTF8 & addressID = XXXXX & addressDelete =真&的sessionId = XXX-XXXXXXX-XXXXXXX

注:這是一個網站(不是Web服務)

+3

如果你在談論REST,你應該使用'DELETE'。 –

+0

這是一個網站,所以沒有REST。 – tamakisquare

回答

6

它是從瀏覽器訪問的RESTful Web服務或只是一個網站?

  • 對於RESTful服務DELETE將apropriate
  • 對於一個網站只是POST。
+0

這只是一個從瀏覽器訪問的網站。 – tamakisquare

+0

你能否解釋爲什麼亞馬遜使用GET而不是POST? – tamakisquare

2

您將使用的HTTP方法不會以任何方式影響安全性。它們具有語義意義。你知道還有一個DELETE方法嗎? POST和GET經常用於Web應用程序,因爲它主要由某些語言(例如PHP)和瀏覽器支持。

還有其他的事情你應該照顧。在這種情況下,該請求當然是授權的,您可能會根據您使用的平臺使用身份驗證系統來解決該問題。

也要對CSRF等事情保持警惕。例如有人可能會在互聯網上發佈一個僞造的圖像鏈接到刪除URL,登錄的用戶將訪問它並在不知情的情況下刪除該實體。這適用於您的應用程序的任何請求。

+0

實際上,有關POST和GET方法的重要安全考慮因素。作爲一項規則,GET操作不應該執行任何操作,因爲GET CSRF的操作有多容易(與POST相反,稍微難一些) – Artyom

+0

@Artyom:雖然你說的正確,GET應該是冪等的,但是'POST'要求真的只需要更多的努力,以至於它可以忽略不計。 –