吐槽:关于用户口令

CSDN的密码泄漏事件被爆出之后,在Twitter和Weibo上引起了广泛的反响,很多人质疑国内网站的安全管理工作,竟然敢直接用明文保存密码。有一点常识的Web应用开发人员都应该知道直接在数据库里明文形式的密码是相当不安全的。但是为什么还有那么多人仍然这样做呢?他们出于什么目的呢?引人深思呀。

一个网站到底应该怎么保存用户的密码才安全呢?又怎么应该设计登录流程呢? 酷壳上有两篇文章介绍的不错:你会做Web上的用户登录功能吗? 和 Web开发中需要了解的东西

青蛙除了大学的时候搞的那个神马选课系统,基本就没有做过Web应用,就从一个Web用户的角度唠叨几句算了。

首先,是我们到底需要多少个密码? 只有一个显然不行,如果使用这个密码的网站有一个不靠谱,把用户密码给泄漏了(被黑了也好,被无良网站卖了也好,当然在天朝还有另外一种可能:被政府收缴),所有的网站都必须重设密码。那每个网站都设置一个密码呢,现在是个网站都要登录,谁能记得住那么多密码呀。

为了防止密码忘掉,大体上有两种思路:

  • 密码管理器 这种方法比较简单,实际就是保存一个密码。本因为浏览器就内置了记住密码的功能,把用户从繁重的记忆密码的任务中解脱出来。但是浏览器的密码记忆方式功能单一,而且跟浏览器绑定,换一个浏览器就完蛋了。还有系统自带的密码管理工具,例如KDE的KWallet之类的都会有这种问题,跟某个环境绑定,移动性不高。青蛙目前也没有好的实践经验,可以想到的方法就是加密KWallet之后放在Dropbox上,这样多台电脑之间的密码同步可以解决,但是仍然没有解决跨平台的问题。可能这个问题需要借助移动设备来完成,例如Android上的密码管理应用 …

more ...