HTTP/HTTPS基本身份验证:用户名中的冒号

Chr*_*ris 25 https http

这可能是一个基本问题,但是当有HTTP或HTTPS基本身份验证时,是否可以在用户名中使用冒号(":")?如果没有,有没有办法逃脱冒号?

小智 28

RFC http://tools.ietf.org/html/rfc2617#section-2 明确指出用户名不能包含冒号:

为了接收授权,客户端在凭证中的base64 [7]编码字符串内发送用单个冒号(":")字符分隔的用户标识和密码.

basic-credentials = base64-user-pass

base64-user-pass = <base64 [4] encoding of user-pass, except not limited to 76 char/line>

user-pass = userid ":" password

userid = * <TEXT excluding ":">

password = *TEXT

基于此,无法在用户名中使用冒号.

  • 同时被[RFC7617](https://tools.ietf.org/html/rfc7617)废弃,更明确地说明:包含冒号的_User-id无法在用户传递字符串中编码._ (8认同)

Jur*_* C. 16

看看RFC - http://tools.ietf.org/html/rfc2617#section-2和网络上,似乎没有用户名冒号的转义技术.你可以拥有的唯一额外的地方是密码字段.

如果是一个选项,您可以替换:在auth级别中使用@并要求用户执行此操作.