将 HTTP GET 与 HTTP POST 进行比较时,从安全角度来看有何区别?一种选择天生就比另一种更安全吗?如果是这样,为什么?
我意识到 POST 不会在 URL 上公开信息,但它有任何真正的价值,还是只是通过默默无闻的安全性?当安全性受到关注时,有没有理由我应该更喜欢 POST?
编辑:
通过 HTTPS,POST 数据被编码,但是 URL 可以被第 3 方嗅探吗?此外,我正在处理 JSP;使用 JSP 或类似框架时,可以说最佳做法是避免将敏感数据完全放在 POST 或 GET 中,而是使用服务器端代码来处理敏感信息吗?
原文由 James McMahon 发布,翻译遵循 CC BY-SA 4.0 许可协议
就安全性而言,它们本质上是相同的。虽然 POST 确实不通过 URL 公开信息,但在客户端和服务器之间的实际网络通信中,它公开的信息与 GET 一样多。如果您需要传递敏感信息,您的第一道防线就是使用安全 HTTP 传递它。
GET 或查询字符串帖子对于为特定项目添加书签或协助搜索引擎优化和索引项目所需的信息非常有用。
POST 适用于用于提交一次性数据的标准表单。我不会使用 GET 来发布实际表单,除非在搜索表单中您希望允许用户将查询保存在书签或类似的东西中。