编码与安全指南

HTTP Basic Auth:冒号、UTF-8 与 HTTPS

明确凭据字节、冒号分隔和服务端字符集约定,区分编码失败与认证拒绝。

Nav Tools ·

构造 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,重复编码不能修复这些问题。

参考资料

← 编码与安全指南