Chrome访问带域前缀账号的Basic Auth认证URL登录失败
Chrome 下带域名前缀的 Basic Auth 登录失败问题
问题现象
通过 Basic Auth(基础认证)方式访问站点时,若账号规则要求用户名携带域名前缀,且域名与用户名之间使用反斜杠\分隔,在 Chrome 浏览器中会稳定复现登录失败问题。
复现参考信息
- 测试浏览器:Chrome
- 目标访问地址:
http://example.com - 认证账号信息:
- 用户名:
abc\User123 - 密码:
password123
- 用户名:
故障原因
如果直接按照 Basic Auth 的URL拼接规则组装地址,得到的访问链接为http://abc\User123:password123@example.com。Chrome 会自动将URL中的反斜杠识别为路径分隔用的正斜杠,实际跳转时地址会被篡改成为http://abc/User123:password123@example.com,原本属于用户名一部分的域名段abc被识别为路径层级,直接导致认证信息中的用户名、密码解析错误,最终登录失败。
解决方案
对用户名中的反斜杠做URL编码即可,反斜杠对应的URL编码为%5C。替换后拼接得到的可正常访问的认证地址为:http://abc%5CUser123:password123@example.com
直接访问该地址,Chrome 不会再错误转义分隔符,就能正常携带完整的带域名前缀的用户名完成认证。
内容的提问来源于stack exchange,提问作者Shashwat Singh
相关产品推荐
相关产品推荐

