Security 在Ionic应用程序中重新使用本地存储凭据登录安全吗?

Security 在Ionic应用程序中重新使用本地存储凭据登录安全吗?,security,authentication,ionic-framework,local-storage,ionic4,Security,Authentication,Ionic Framework,Local Storage,Ionic4,我正在开发一款处理身份验证的Ionic应用程序,如下所示: 打开应用程序时,用户需要输入其凭据(登录名、密码) 完成后,应用程序将从服务器请求JWT令牌 用户名、密码和JWT令牌随后存储在用户的本地存储器中(使用@ionic native/storage) 稍后,如果用户重新打开应用程序,身份验证将自动完成 重新使用本地存储中的令牌(如果未过期) 或者使用存储在本地存储器中的凭据请求一个新的 所有这些都是为了自动化身份验证,避免每次都要求用户进行身份验证 该实现安全吗? 如果没有,风险是什么

我正在开发一款处理身份验证的Ionic应用程序,如下所示:

  • 打开应用程序时,用户需要输入其凭据(登录名、密码)
  • 完成后,应用程序将从服务器请求JWT令牌
  • 用户名、密码和JWT令牌随后存储在用户的本地存储器中(使用@ionic native/storage)
  • 稍后,如果用户重新打开应用程序,身份验证将自动完成
    • 重新使用本地存储中的令牌(如果未过期)
    • 或者使用存储在本地存储器中的凭据请求一个新的
  • 所有这些都是为了自动化身份验证,避免每次都要求用户进行身份验证

    该实现安全吗? 如果没有,风险是什么?


    谢谢你的帮助。

    一块饼干比本地存储要好得多

    如果将其存储在localStorage中,则任何脚本都可以访问它 在页面内部(这听起来像XSS攻击一样糟糕) 让外部攻击者访问令牌)

    然后,在窗口关闭后是否持久化则取决于数据的敏感性和所需的用户体验。关于这件事,有一些很好的建议:

    谢谢@chrismclarke。我刚刚遇到另一个cordova插件(),它似乎非常适合,尽管它不再维护:(啊,我假设你在做一个PWA,没有考虑cordova。我认为cordova webview中用于处理cookies的系统是非标准的,但是如果其他插件不工作,可能下面的repo会有用:否则,一个好办法可能是使用indexeddb-略微过多地存储单个字符串,但是如果你重新规划将离子存储用于其他用途可能是一个不错的选择