【发布时间】:2017-02-27 16:23:22
【问题描述】:
为了在本地存储中保存令牌以避免每次启动应用程序时都登录,我找到了以下链接。但是,它安全吗?
Ionic - How to store session token as globally (for app) accessible variable?
【问题讨论】:
标签: angularjs cordova ionic-framework oauth
为了在本地存储中保存令牌以避免每次启动应用程序时都登录,我找到了以下链接。但是,它安全吗?
Ionic - How to store session token as globally (for app) accessible variable?
【问题讨论】:
标签: angularjs cordova ionic-framework oauth
将令牌简单地存储在本地存储中可能是一种安全威胁,您可以使用Crypto 加密数据,然后在需要时使用秘密密钥解密类似:-
var secretKey = 'your-secret-key';
var encryptedData = CryptoJS.AES.encrypt(yourtoken, secretKey).toString();
存储此加密数据
当你需要它时
var encryptedValue = valuefrom your local;
var decryptedData= CryptoJS.AES.decrypt(encryptedValue, secretKey)
【讨论】:
不,仅 localStorage 不足以存储访问和/或会话密钥。您应该加密数据(而不是将加密密钥存储在您的应用代码中)。
您可以使用 Cordova SecureStorage 插件来执行此操作:
https://github.com/Crypho/cordova-plugin-secure-storage
它的工作原理与 localStorage 几乎相同,让您可以简单地设置和获取键/值对。
由于此安全存储的 Android 实现使用 KeyStore,因此用户必须具有安全的屏幕锁定设置(如指纹、图案或 PIN)。该插件提供了检查这一点的功能,因此如果不是这种情况,您将能够发出警告(或阻止登录)。如果没有锁定屏幕,就无法在 Android 上以安全的方式保存您的密钥。
【讨论】: