2011-09-15 62 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'要求真的只需要更多的努力,以至于它可以忽略不计。 –