我正在实施一个REST服务器。
我将收到用户的每个请求的用户名,requeststid和密码。
我有两个选择,我可以要求用户在http正文或http标题中传递这三个参数。
哪种更好的实施方式和原因?
提前致谢。
答案 0 :(得分:3)
标题!
如果我理解你的问题,那么每一个请求都会传递一些东西。这意味着如果您想支持GET和HEAD等安全请求,您只有两个选择:HTTP标头或URL(通常通过查询参数)。
由于它包含身份验证信息,因此应避免将其放入URL中。除此之外,你说它是加密的,增加的保护层是通过SSL进行的,但标题和正文同样安全/易受攻击,因此从安全角度来看没有任何区别。
将它放在标题中也会将它与应用程序状态以及媒体类型分离,这是一件好事。如果您想支持JSON,XML和XHTML表单,则对您的身份验证参数没有任何影响。