保护 HTML LocalStorage
Securing HTML LocalStorage
我目前正在 Angular 中开发一个带有 laravel 后端的应用程序。我通常会将用户数据存储为 LocalStorage 中的 JSON。这个新应用程序处理安全信息,因此不能以明文形式存储。
数据库已加密,流量使用 SSL 但在本地,我想在本地加密数据并存储它,这样用户就不需要在每次打开应用程序时都登录。
我当前的工作流程是用户登录、用户验证以及从服务器检索用户数据。
数据作为服务保存在 Angular 中,并存储为 CryptoJS.AES 加密 JSON 字符串,用户密码作为密码。
然后在下一次加载应用程序时,应用程序会检查 LocalStorage 中是否有任何数据,如果有,用户只需输入密码,CryptoJS.AES decrypt 将解密 json 并存储为再次服务变量。
是否有任何缺陷或漏洞或更好的库可用于这种想法?
一种看待这个问题的方法是用户的计算机已经受到 login/password 的保护。本地存储只能由您的站点或用户通过开发人员控制台访问。因此,通过加密本地存储您并没有真正获得任何好处。
实际上,通过在本地存储密码哈希,您引入了潜在的攻击向量。
这种身份验证的现代标准是 Json Web Tokens, JWT。它们非常适合 angular 和其他 SPA,易于实施且安全。
查看 SecurityJS.128. It is a JavaScript client-side library you can hide sessionStorage
and localStorage
. You can use the window
secureStorage
API
我目前正在 Angular 中开发一个带有 laravel 后端的应用程序。我通常会将用户数据存储为 LocalStorage 中的 JSON。这个新应用程序处理安全信息,因此不能以明文形式存储。
数据库已加密,流量使用 SSL 但在本地,我想在本地加密数据并存储它,这样用户就不需要在每次打开应用程序时都登录。
我当前的工作流程是用户登录、用户验证以及从服务器检索用户数据。 数据作为服务保存在 Angular 中,并存储为 CryptoJS.AES 加密 JSON 字符串,用户密码作为密码。 然后在下一次加载应用程序时,应用程序会检查 LocalStorage 中是否有任何数据,如果有,用户只需输入密码,CryptoJS.AES decrypt 将解密 json 并存储为再次服务变量。
是否有任何缺陷或漏洞或更好的库可用于这种想法?
一种看待这个问题的方法是用户的计算机已经受到 login/password 的保护。本地存储只能由您的站点或用户通过开发人员控制台访问。因此,通过加密本地存储您并没有真正获得任何好处。
实际上,通过在本地存储密码哈希,您引入了潜在的攻击向量。
这种身份验证的现代标准是 Json Web Tokens, JWT。它们非常适合 angular 和其他 SPA,易于实施且安全。
查看 SecurityJS.128. It is a JavaScript client-side library you can hide sessionStorage
and localStorage
. You can use the window
secureStorage
API