我以为我的密码很安全,结果...

摘要:前两天发现公司官网的登录接口在提交表单时密码是明文显示的,于是立马找到相关的开发同学将其修复。今天早上打开自己搭的 gitlab 站点准备登陆时,抱着随便看看的心态,按下 Chrome 的 F12 按钮,勾上 Preserve log。

当我看到我的密码赤裸裸的躺在调试窗口样子,仿佛在嘲笑自己。一开始我不太相信,明明 pull 的是官方镜像最新版呀,难道容器版的 gitlab 砍了一些安全性的功能?于是我决定去登陆 gitlab 官网求证一下:

事实再一次告诉我,是我错了,别人根本没做这个功能。是,上了 Https 确实能保证传输层安全,能有效防止中间人攻击。但是在应用层直接 post 明文密码难道不是对用户的侮辱,一旦处于一个可能被监听数据包的网络环境,密码暴露将变得十分简单。 这样的做法简直是降低了账号被盗的成本, 加上很多人会把各个站点密码设置成一样的,也为撞库攻击提供了便利。

于是,我又去逛了逛常去的几个站点:

Github

Testerhome

所以,Ruby-China 应该也是一样的了。

LeetCode

V2EX

让我感到很十分诧异的是,V2EX 对 key 值做了加密处理,把 value 明文显示了,难道这样就看不出哪个是账号哪个是密码了吗。

后来我又去了 微博 、 知乎 、 qq 、淘宝 、gitee,结果只有 gitee 是 post 明文密码的,所以结论是做社交和电商的公司更注重安全性,反而技术类站点反而忽略了安全?

12306

最后,我仍然抱着试一试的心态打开了 12306 ,这个几乎包含了大部分国人身份信息的网站,这个验证码难到真人都难以识别的登陆界面,结果告诉我:

看来工程师们把精力都放在了制造更多复杂的验证码上,忽略了基本的信息安全,不禁又为个人信息泄漏捏了一把汗。

可能部分人会认为 Https 会在传输层会加密传输的数据包,以此来否认额外加密敏感数据的必要性。除非你能确认你处在安全的网络环境,才去使用这些站点。否则难以避免被人监听网络数据包,特别是现在这个遍地 WIFI 的时代。

况且仅对极少量数据增加 RSA 或其他非对称加密算法并不会影响多少传输效率,特别是用户密码这种敏感数据,我想这应该也是一个负责任的站点应该做好的事。

写在最后

在各种数据泄漏事件频繁发生的背后,在越来越注重个人隐私和数据安全的今天,作为服务提供者,更要做好每一步的信息安全措施。但在这之前,作为用户的我们,或许才是最重要的关卡。

  1. 不随意蹭网,随意连接公共 wifi 或者在有风险的网络环境登陆重要的账号信息。
  2. 不随意连接不可信的代理服务器,即便是为了搭梯子。
  3. 建立自己的账号密码规则,尽量不在不同站点使用相同的密码。(这个有点费脑)

(PS:没想到把一篇博客写到最后写成了网络安全教育文了,服了,图中所用测试账号在文章发布后已注销或改密。)

~~ 本文完 ~~

Tips:本站使用 Disqus 评论,被墙访客请科学上网后点击加载。