有人问我,如何才能让客户端的登录凭证(用户名和密码)安全,并且不会显示在Chrome developer tools的网络选项卡中。有很多答案说这是不可能的,因为它是在客户端,只要我们使用HTTPS,攻击者就不能以纯文本的形式查看从客户端到服务器端的数据流。
所以,我尝试去一些银行网站,检查网络流量,我发现用户名和密码看起来都是加密、哈希或编码的。其中一个银行网站使用的是我不熟悉的OAuth 1.0。我想知道怎么可能不以纯文本显示凭据。他们通常使用的技术是什么?
发布于 2019-09-30 13:52:55
通常,最基本的凭证传输形式是基本授权方案,其中用户名和密码被组合,然后进行base64编码,然后在请求的Authorization
超文本传输协议报头中发送,例如在JavaScript中,将Authorization
报头设置为:
Basic + ' ' + btoa(username + ':' + password);
注意用户名和密码之间的':‘。
参见this article。
https://stackoverflow.com/questions/58161303
复制相似问题