编码与安全指南
HTTP Basic Auth:冒号、UTF-8 与 HTTPS
明确凭据字节、冒号分隔和服务端字符集约定,区分编码失败与认证拒绝。
构造 user-pass 值
Basic Auth 把用户名、一个冒号和密码组成字节,再做 Base64,第一个冒号是分隔符。
用户名不能含冒号,密码可以;检查格式时只使用合成凭据。
demo:sample-only
→ Basic ZGVtbzpzYW1wbGUtb25seQ==确认字符编码约定
ASCII 示例无法暴露字符集不一致;RFC 7617 的默认编码未完全固定,但需兼容 ASCII,挑战响应可声明 UTF-8。
本站按 UTF-8 编码文本,非 ASCII 凭据需确认服务端接受同样字节。
WWW-Authenticate: Basic realm="demo", charset="UTF-8"保护整个请求链
Base64 可以还原,不提供保密性;HTTPS 保护传输,但应用日志仍可能暴露 Authorization。
使用获授权的目标,不把真实头复制到共享样例;生成器只生成请求头,不执行服务端认证。
区分认证拒绝与字节错误
先解码合成请求头,确认用户名和完整密码,再检查服务端挑战与认证规则。
格式正确仍可能因凭据错误或认证方式不受支持收到 401,重复编码不能修复这些问题。