【问题标题】:Any production benefit to GET over POST?GET over POST 有什么生产优势吗?
【发布时间】:2016-03-16 16:16:28
【问题描述】:

我正在使用 PHP 开发 LAMP 环境。我的脚本使用 $_REQUEST 而不是 $_GET 或 $_POST 读取客户端数据。我在想,一旦我进入生产阶段,我只需将我的 jQuery 默认值从 GET 更改为 POST。

任何人都可以看到这种方法的任何缺点吗?

更多信息?

我的 jQuery Ajax 设置默认设置 GET - console.log 中显示的 url 的输出帮助我检查成功传递的 args 有无值。

在生产环境中,URL 数据将显示在日志文件中,这可能会造成漏洞。虽然目前并不重要,但我是从长远来看。我怀疑它还会导致更大的日志文件(本身不是问题,但仍然是一个考虑因素)。

GET 的长度是有限的,尽管很少有浏览器会遵守我不太可能达到的慷慨限制。

POST 的优势在于限制较少。它还允许上传文件。

就像我的第一段所说...我只是想权衡从 GET 到 POST 的好坏。

欢迎所有 cmets...

【问题讨论】:

  • 除非您打算允许浏览器缓存您的 AJAX 请求,否则您通常可以毫无问题地从 GET“移动”到 POST。

标签: php jquery ajax security http


【解决方案1】:

不应该有“权衡利益”。它们用于不同的事情。只要请求对服务器的状态没有影响(除了一些琐碎的,比如访问日志),就应该使用 GET。 POST 应该在有时使用(现在忽略 PUT 或 DELETE 等 REST 方法)。

例如,如果您想要求服务器显示下一页、列出可用项目、显示图片……您应该使用 GET。如果您想要求服务器更改数据库,请记住您的选择,发送电子邮件,上传文件,删除文件,关闭服务器......您使用 POST。

这不仅仅是原则问题;它是其他网络参与者(例如爬虫机器人)所依赖的合同。如果您没有身份验证并且您的删除操作是 GET 链接,那么来自 Googlebot 的一次访问可能会清除您的数据库。

【讨论】:

猜你喜欢
  • 2010-09-16
  • 1970-01-01
  • 2019-11-01
  • 1970-01-01
  • 2016-01-09
  • 2014-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多