如您所知,对于 Basic HTTP 身份验证,在 Authorization Header 中,Base64用于对字符串进行编码;
username:password
我不知道为什么 HTTP 真的期望这个,但我的问题是在我的 Rest web 服务中。如果我使用自定义HTTP 标头来保存 userid:token 对,那么不使用Base64 是否安全?我可以按原样发送纯文本吗?
注意:我使用 HTTPS,这不是安全问题
不使用 Base64 是否安全?
如果您不对它们进行 base64 编码,则用户名或密码中的文本字符之一可能不是有效的 HTTP 标头字符。您需要研究HTTP RFC以确保这对您的应用程序来说不是问题。
例如,您的应用程序是否允许密码中有空格?像这样的东西...
或者您可以只对用户名/密码进行 base64 编码,并且知道您可以安全地避免违反 HTTP 协议。
如果您使用自定义标头,可以根据需要以纯文本形式发送它们。
但是,如果您坚持使用 Basic HTTP 协议,您将能够在测试中使用标准工具,并且客户端无需手动添加额外代码来添加标头,因此我建议尽可能不要滚动您自己的标头。