【发布时间】:2015-03-02 09:31:19
【问题描述】:
TL;DR - 将 Web 应用程序的用户登录密码存储在 JS 内存中,用于客户端加密用户数据:是还是不是?
我正在开发一个网络应用程序,用户可以在其中将笔记存储在云中。用户有密码才能登录。 此外,用户可以选择使用密码来加密笔记。笔记加密存储在云端,这意味着只有用户可以解密它们(如果密码丢失,笔记也会丢失)。
为方便用户,最好使用相同的密码登录帐户和加密笔记,并且在登录时将该密码存储在内存中的 JS 变量中,这样他们就不必重新输入密码每次应用程序需要加密或解密任何内容时(例如,如果他们更新笔记)。
这不安全吗?是的,可以访问用户机器的攻击者可以进行内存转储,或在(丑化的)JS 中插入断点等,并获取密码。但是可以访问用户机器的攻击者无论如何都可以这样做:为了登录,必须在我的应用程序的 JS 中以纯文本形式访问用户密码。
所以对我来说这似乎没问题 - 没有比 不 存储它更不安全。想法?
【问题讨论】:
标签: javascript security encryption web-applications passwords