使用GET而不是POST来删除经过身份验证的页面后面的数据

Mat*_*ley 3 asp.net-mvc http crud

我知道只要在公共网站上修改数据,就应该使用POST.有几个原因,包括搜索引擎将遵循所有链接并修改数据.

我的问题是你认为在管理界面之类的东西中使用GET在经过身份验证的页面后可以吗?

一个示例是每行上具有删除链接的产品列表.因为进入该页面的唯一方法是,如果您已登录,那么在查询字符串中使用带有产品ID的链接是否有任何危害?

详细说明意见:

我个人在使用POST实现删除时没有任何问题或困难.我刚刚在ASP.NET和ASP.NET MVC中看到了几个使用GET而不是POST的"admin like"页面的代码示例.我很好奇人们对此事的看法.

Fra*_*itt 5

使用GET的诱惑是,您可以创建一堆删除链接,而无需每页创建数十个表单,或使用JavaScript.然而,由于已经提到的各种原因,网络依赖于GET不具有破坏性.

最佳实践,如果在服务器上为每个删除链接生成一个小表单是不切实际的,则使用GET链接从服务器加载一个确认页面,该页面具有执行删除的POST表单.然后做一些渐进增强:

<a href="/controller/delete/1" onclick="$.post(this.href); return false;">Delete</a>
Run Code Online (Sandbox Code Playgroud)

如果服务器获得GET到/ controller/delete/x,则使用POST表单提供确认页面.如果服务器获得POST(或可能是DELETE)请求,则执行删除操作.