在 HTTP 标头或 HTTP 正文中将用户名/密码作为参数传递哪个更好?

发布于 2025-01-07 18:12:38 字数 156 浏览 0 评论 0原文

我正在实现一个 REST 服务器。

我将收到用户每个请求的用户名、requestid 和密码。

我有两个选择,我可以要求用户在 http body 或 http header 中传递这三个参数。

哪种实施方式更好?为什么?

提前致谢。

I am implementing an REST server.

I am going to receive the username, requestid and password for each request from user.

I have two choice, i can ask for users to pass those three parameters in http body or in http header.

Which will be better way of implementation and why?

Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

香橙ぽ 2025-01-14 18:12:38

头球!

如果我理解您的问题,那么您将在每个请求中传递一些内容。这意味着如果您想支持 GET 和 HEAD 等安全请求,您只有两个选择:HTTP 标头或 URL(通常通过查询参数)。

由于它包含身份验证信息,因此应避免将其放在 URL 中。除此之外,您说它是加密的,并且附加的保护层是通过 SSL 进行的,但标头和正文同样安全/易受攻击,因此从安全角度来看没有区别。

将其放在标头中还可以将其与应用程序状态以及媒体类型解耦,这是一件好事。如果您想支持 JSON、XML 和 XHTML 表单,这对您的身份验证参数没有影响。

Header!

If I understand your question, you have something that you are going to pass with every single request. That means if you want to support safe requests like GET and HEAD, you only have two choices: The HTTP headers or the URL (typically via query parameters).

Since it includes authentication information, you should avoid putting it in the URL. Other than that, you say it is encrypted and an added layer of protection would be to do it over SSL but the header and body are equally safe/vulnerable, so it makes no difference from a security standpoint.

Putting it in the header also decouples it from the application state and also from the media type, which is a good thing. If you want to support JSON, XML and XHTML forms it makes no difference to your authentication parameters.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文