【问题标题】:HTTP Base64 encoded headerHTTP Base64 编码标头
【发布时间】:2012-12-17 23:27:59
【问题描述】:

如您所知,对于 Basic HTTP 身份验证,在 Authorization Header 中,Base64 用于对字符串进行编码;

username:password 

我不知道为什么 HTTP 真的期望这个,但我的问题是在我的 Rest web 服务中。如果我使用 custom HTTP 标头来保存 userid:token 对,那么 not Base64 是否安全?我可以直接发送纯文本吗?

注意:我使用 HTTPS,这不是安全问题

【问题讨论】:

标签: java http rest


【解决方案1】:

如果您使用自定义标头,可以根据需要以纯文本形式发送它们。

但是,如果您坚持使用 Basic HTTP 协议,您将能够在测试中使用标准工具,并且客户端无需手动添加额外代码来添加标头,因此我建议您不要滚动您自己的标头,如果可能。

【讨论】:

  • 即使我使用用户名:令牌对手动管理我的登录,也可以使用 HTTP Basic 标头吗?没有 cookie,没有容器管理的授权,只有一次令牌
【解决方案2】:

不使用 Base64 是否安全?

如果您不对它们进行 base64 编码,则用户名或密码中的文本字符之一可能不是有效的 HTTP 标头字符。您需要研究 HTTP RFC 以确保这对您的应用程序来说不是问题。

例如,您的应用是否允许密码中有空格?诸如此类...

或者您可以只对用户名/密码进行 base64 编码,并知道您不会违反 HTTP 协议。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-27
  • 1970-01-01
  • 2010-09-24
  • 2019-05-18
  • 2016-01-27
相关资源
最近更新 更多