REST服务 - 应该使用什么?通过POST检索帐户信息或传递加密的帐号并使用GET?

时间:2016-08-26 19:14:09

标签: rest

我和一位同事讨论了从后端服务器获取帐户历史信息的最佳方法。

帐户标识符是敏感信息,作为请求的一部分传递。作为响应,返回帐户历史记录。我们可以选择加密帐户标识符并将其作为参数传递给GET请求。第二个选项是我们将其作为POST请求正文的一部分。

如果我们使用GET请求,那么正确使用REST动词是因为我们正在使用'服务器的历史。如果我们使用POST请求,它会隐藏来自服务器日志的敏感信息,但是它(不是?)正确使用REST,因为POST应该用于创建或更新资源而不是检索它们?

处理这种情况的正确方法是什么?加密帐户标识符并使​​用GET?或使用POST并在正文中发送帐户标识符?公平地说,如果涉及敏感信息,请始终使用POST吗?

2 个答案:

答案 0 :(得分:0)

你如何获得其他敏感信息?许多系统使用基于令牌的身份验证,其中为活动会话分配了一个仅对该会话进行身份验证的令牌,该令牌可以通过标准GET查询字符串传递,或者在许多情况下作为自定义HTTP头添加,然后服务器在允许访问之前进行检查。 / p>

这里是some useful REST api auth methods

答案 1 :(得分:0)

IMO根据REST的清洁编码风格是将其放入URL(加密)并使用GET。

出于安全考虑,我更愿意将其放入POST请求的内容中,并使用SSL加密请求内容。

get方法还有一个缺点:URL以明文形式记录(路由器,提供程序等)。任何具有访问目标系统访问权限的URL的人都可以简单地复制在浏览器中粘贴URL并获取敏感数据(即使帐户标识符已加密),除非没有使用其他身份验证系统。