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

时间:2012-07-23 12:49:20

标签: http https

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

2 个答案:

答案 0 :(得分:25)

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

  

要接收授权,客户端会在凭证中的base64 [7]编码字符串中发送用户名和密码,用单个冒号(":#34;)字符分隔。

     

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

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

答案 1 :(得分:15)

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

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