android - 用户必须设置安全屏幕锁定 Ionic 2 安全存储

标签 android ios cordova ionic2

我正在尝试用 SecureStorage 替换 ionic 2 Storage 插件。但是,在文档中说“用户必须设置安全的屏幕锁定”。所以我有点困惑。也有人说,如果安全设置不够,那么应用程序开发人员应该告知用户其应用程序的安全要求,并在用户更改屏幕锁定设置后重新初始化。我认为我不需要现存的安全存储。因此,将“Storage”移动到“SecureStorage”是个好主意。如果没有,那么可以选择什么。

最佳答案

So will it be a good idea to move 'Storage' to 'SecureStorage'

不,“安全存储”(由 cordova-plugin-secure-storage 提供)旨在存储少量敏感数据,例如用户凭据或信用卡详细信息。它不是作为一般存储机制的直接替代品,例如 SQLite 数据库(例如 cordova-sqlite-storage )。它不提供无限量的存储容量,例如在Android上,尝试存储超过1.5Mb左右会导致内存异常。例如,如果您需要存储大量敏感数据,您可以对存储在更大的 SQLite 数据库中的数据进行加密,并使用安全存储来安全地存储解密 key 。

in the documentation it is said that 'Users must have a secure screen-lock set'

这意味着在 Android 上,设备必须具有安全的锁屏 - 即必须输入图案或 PIN 码锁才能解锁设备(注意:滑动解锁不被认为是安全的)。如果不是这种情况,则安全存储插件构造函数将调用错误回调,您将无法使用安全存储在该设备上存储数据。

it is also said that if the security setting is not sufficient then the app developer should inform the user about the security requirements of her app and initialize again after the user has changed the screen-lock settings.

如果在初始化插件时调用了错误回调,您有机会通知用户,即“您的设备没有安全屏幕锁。没有一个,您将无法{使用此功能} .你现在要设置一个吗?”

您可以使用您喜欢的任何机制向用户呈现消息,例如the confirm() function from cordova-plugin-dialogs .

如果用户同意,您可以从安全存储插件中调用 secureDevice() 函数,它会调用 native Activity 来引导用户完成设置屏幕锁定的过程。在此期间您的应用程序将置于后台,因此当它恢复时,您可以使用 onResume() 处理程序来检查安全存储插件是否已经初始化,如果没有则重试初始化它:如果用户设置屏幕锁,插件将成功初始化。如果不是,将再次调用错误回调(回到原点)。

另请注意,安全存储插件需要 Android 4.4 或更高版本:在 Android 4.3 或更低版本上,无论锁屏设置如何,插件总是无法初始化。

关于android - 用户必须设置安全屏幕锁定 Ionic 2 安全存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43973307/

相关文章:

angularjs - 将 ionic cli 添加到现有的 ionic 项目

java - 尝试从我的应用程序启动 Activity 但不断获得拒绝权限

java - 当我在另一个 fragment 中输入一个 fragment 时,我的应用程序停止工作

android - 是什么让缩小后的 Hello World Android APK 如此之大——800KB?

ios - 如何以编程方式在 iPhone 笔记应用程序中创建笔记

ios - 如何加载 UITabBarController 中的所有 View ?

Cordova /Phonegap更改www到应用程序

java - PhoneGap - 找不到 javac.exe

java - Android Studio 错误 : package com. sun.xxx.xxx。不存在

ios - swift 4 : When a user clicks on a UiButton how do I grab the string that is selected in a UICollectionView?