在需要身份验证的RESTful API中使用GET方法

时间:2014-01-12 09:15:40

标签: api http rest get

我正在尽可能地遵循RESTful原则构建API。讨论中的请求是允许用户检查他/她在系统中可用的信用。在请求时,系统通过比较系统中已提供的用户名和密码来验证用户。请注意,目前无法更改身份验证方法(至OAuth等)。

由于这是“读取”请求,因此使用GET方法。所以,我会有以下内容:

GET http://mydomain.com/credit?username=XYZ&password=123

通过遵循RESTful原则并正确使用动词,我担心用户名和密码易于阅读/访问。在非API场景中,我会使用带有SSL的普通表单POST ...

我承担上述风险是错误的吗?

2 个答案:

答案 0 :(得分:2)

你是非常正确的,在查询字符串中以纯文本显示用户名和密码是个坏主意。比最近三部星球大战电影更糟糕。

如果通过SSL发出相同的请求(假设是受信任的证书),您应该没问题。

REST还有许多其他安全机制,如DOSETA数字签名规范,JSON Web签名和加密等。但你似乎暗示这些事情不是一种选择。

答案 1 :(得分:1)

Http Authentication标头用于存储用户名和密码等信息。你应该使用它。