我正在实现 REST 服务器。
我将收到来自用户的每个请求的用户名、requestid 和密码。
我有两个选择,我可以要求用户在 http body 或 http header 中传递这三个参数。
哪种实现方式更好,为什么?
提前致谢。
最佳答案
标题!
如果我理解你的问题,你有一些你要通过每个请求传递的东西。这意味着如果您想支持 GET 和 HEAD 等安全请求,您只有两个选择:HTTP header 或 URL(通常通过查询参数)。
由于它包含身份验证信息,您应该避免将其放在 URL 中。除此之外,您说它是加密的,并且额外的保护层是通过 SSL 进行的,但 header 和正文同样安全/易受攻击,因此从安全角度来看没有区别。
将它放在 header 中还可以将它与应用程序状态以及媒体类型分离,这是一件好事。如果你想支持 JSON、XML 和 XHTML 形式,这对你的身份验证参数没有影响。
关于http - 在 HTTP header 或 HTTP 正文中将用户名/密码作为参数传递哪个更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9383476/