不久前,我访问了一家高端百货公司的网站(通过 HTTPS),当我登录时,我注意到请求中发送的表单数据不包含我的纯文本密码,但Base64 编码变体。
这里要澄清的是正在发送的表单数据(使用伪造的凭据):
email: johndoe%40gmail.com
password: aGVsbG9fd29ybGQ=
现在我对为什么在请求中使用 base64 编码有点困惑。这也让我怀疑自己在自己网站上所做的事情是否真的安全(通过 HTTPS 发送纯文本密码)。我认为在通过 HTTPS 发送请求时,几乎所有内容都会在这样的请求中加密,那么预先对它进行 base64 编码有什么意义呢?
也许我只是想多了,他们确实出于与安全无关的原因对其进行了编码。问题仍然存在,在请求中对密码进行 base64 编码的可能原因是什么?
最佳答案
base64 对提高安全性没有任何作用。我可以看到对密码进行 base64 编码的唯一原因是删除在请求期间以某种方式不安全的字符。
要么是这样,要么是相关网站实际上使用 base64 作为“加密”。您会惊讶于有多少大公司正在使用糟糕的安全实践:https://plaintextoffenders.com/
明确一点:纯文本和 base64 实际上是一回事。通过安全连接发送密码明文并没有做错什么。
关于https - 在 HTTPS 请求中对密码进行 Base64 编码的可能原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55937641/