【发布时间】:2011-12-14 08:16:17
【问题描述】:
我正在构建一个需要离线工作的网络应用。该系统旨在捕获销售交易。大部分“离线”部分相当简单——我只需要在本地存储数据并在我回到网络时同步它。到目前为止,一切顺利。
问题在于身份验证。该应用程序将在具有单个操作系统用户帐户的共享计算机上运行。如果我处于离线状态,如何验证用户身份?
用户自己没有任何我需要隔离的私人数据(即,我不必在客户端上相互保护他们)。我需要能够验证他们的密码,这样即使连接断开,我也可以让不同的用户全天登录。
我正在考虑的一种方法是将客户端的密码哈希缓存在 IndexedDB 中。只有有限的一组用户被允许从特定的共享机器登录,所以我不需要在本地缓存我的整个密码数据库。假设我有一个好的密码策略(复杂性和到期要求)并且哈希本身是安全的(bcrypt),这个想法有多可怕?
我还有其他选择吗?
【问题讨论】:
-
据我所知,密码过期弊大于利——cryptosmith.com/node/218 不过,如果您要公开数据库,情况可能并非如此。
标签: javascript html authentication offline