我正在尽可能地遵循RESTful原则构建API。讨论中的请求是允许用户检查他/她在系统中可用的信用。在请求时,系统通过比较系统中已提供的用户名和密码来验证用户。请注意,目前无法更改身份验证方法(至OAuth等)。
由于这是“读取”请求,因此使用GET方法。所以,我会有以下内容:
GET http://mydomain.com/credit?username=XYZ&password=123
通过遵循RESTful原则并正确使用动词,我担心用户名和密码易于阅读/访问。在非API场景中,我会使用带有SSL的普通表单POST ...
我承担上述风险是错误的吗?
答案 0 :(得分:2)
你是非常正确的,在查询字符串中以纯文本显示用户名和密码是个坏主意。比最近三部星球大战电影更糟糕。
如果通过SSL发出相同的请求(假设是受信任的证书),您应该没问题。
REST还有许多其他安全机制,如DOSETA数字签名规范,JSON Web签名和加密等。但你似乎暗示这些事情不是一种选择。
答案 1 :(得分:1)
Http Authentication标头用于存储用户名和密码等信息。你应该使用它。