Basic 认证(基础认证),是最简单的认证方式。
原理
它简单的将 用户名:密码 进行 Base64 编码后,放到 HTTP Authorization Header 中。
HTTP 请求到达后端服务后,后端服务会解析出 Authorization Header 中的 Base64 字符串,解码获取用户名和密码,并将用户名和密码与数据库中记录的值进行比较,如果匹配则认证通过。
示例
$ basic=`echo -n 'admin:Admin@2021'|base64`
$ curl -XPOST -H"Authorization: Basic ${basic}" http://127.0.0.1:8080/login
缺点
通过 Base64 编码,可以将密码以非明文的方式传输,增加一定的安全性。
但是,Base64 不是加密技术,攻击者可以截获 Base64 字符串,并反编码获取用户名和密码。
即使 Basic 认证中密码被加密,攻击者仍然可以通过加密后的用户名和密码进行重放攻击。
适用场景
主要用在用户登录场景。
Basic 认证虽然简单,但是极不安全。
使用 Basic 认证的唯一方式就是将它和 SSL 配合使用,来确保整个认证过程是安全的。