将内部存储用作数据库"是否安全?

时间:2016-03-12 21:56:01

标签: android serialization android-database

我有这个小帮手类:

public class InternalStorage {

private final static String fileName = "saves";

//Lista is átadható!
public static void writeObject(Context context, Object object, String key) {

    try {
        FileOutputStream fos = context.openFileOutput(fileName + "_" + key, Context.MODE_PRIVATE);
        ObjectOutputStream oos = new ObjectOutputStream(fos);
        oos.writeObject(object);
        oos.close();
        fos.close();
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

}

public static Object readObject(Context context, String key) {

    try {

        FileInputStream fis = context.openFileInput(fileName + "_" + key);
        ObjectInputStream ois = new ObjectInputStream(fis);
        Object object = ois.readObject();
        return object;

    } catch (IOException e) {
        e.printStackTrace();
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    }

    return null;
}
}

我用它来在我的应用中保存/加载可序列化对象。

我的问题是使用这种方法是安全的,重要的是"数据吗

我的意思是,用户是否可以通过意外或故意修改或删除数据来操纵此数据?删除应用的缓存或使用任何其他工具?

1 个答案:

答案 0 :(得分:1)

  

我的意思是用户可以通过意外修改或删除数据来操纵这些数据吗?

用户可以随时卸载您的应用。这将删除数据。

用户可以通过“设置”随时清除应用中的数据。这也将删除数据。

根设备的用户可以检查应用的内部存储区域,并编辑或删除他们想要的任何内容。这只是Android用户的一小部分。

当然,在I / O期间可能会出现特殊情况(您的应用程序崩溃,用户强制停止您的应用程序或以其他方式终止您的过程,电池耗尽,设备被大象踩到等等。)。

在这些情况之外,用户不太可能损坏或删除数据,除非您允许通过应用的UI。

  

删除应用的缓存

这不是缓存,因为您没有使用getCacheDir()等方法来处理此数据。