将内部存储用作 "database" 安全吗?
Is it safe to use internal storage as a "database"?
我有这个小帮手class:
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;
}
}
我将它用于 save/load 我的应用程序中的可序列化对象。
我的问题是对"important"数据使用这种方法安全吗?
我的意思是用户 可以通过无意或有意修改或删除数据来操纵这些数据吗? 删除应用程序的缓存或使用任何其他工具?
I mean could the user manipulate this data by modifying or deleting it accidentally or by purpose ?
用户可以随时卸载您的应用。这将删除数据。
用户可以随时通过“设置”从您的应用中清除数据。那也将删除数据。
root 设备的用户可以检查您应用程序的内部存储区域并编辑或删除他们想要的任何内容。这只是 Android 用户的一小部分。
当然,在 I/O 期间可能会出现特殊情况(您的应用程序崩溃、用户强制停止您的应用程序或以其他方式终止您的进程、电池耗尽、设备被踩踏被大象等)。
在这些情况之外,用户不太可能损坏或删除数据,除非您通过应用程序的 UI 允许。
Deleting app's cache
这不是缓存,因为您没有对这些数据使用 getCacheDir()
等方法。
我有这个小帮手class:
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;
}
}
我将它用于 save/load 我的应用程序中的可序列化对象。
我的问题是对"important"数据使用这种方法安全吗?
我的意思是用户 可以通过无意或有意修改或删除数据来操纵这些数据吗? 删除应用程序的缓存或使用任何其他工具?
I mean could the user manipulate this data by modifying or deleting it accidentally or by purpose ?
用户可以随时卸载您的应用。这将删除数据。
用户可以随时通过“设置”从您的应用中清除数据。那也将删除数据。
root 设备的用户可以检查您应用程序的内部存储区域并编辑或删除他们想要的任何内容。这只是 Android 用户的一小部分。
当然,在 I/O 期间可能会出现特殊情况(您的应用程序崩溃、用户强制停止您的应用程序或以其他方式终止您的进程、电池耗尽、设备被踩踏被大象等)。
在这些情况之外,用户不太可能损坏或删除数据,除非您通过应用程序的 UI 允许。
Deleting app's cache
这不是缓存,因为您没有对这些数据使用 getCacheDir()
等方法。