Tenemos una discusión interesante aquí sobre la eliminación de archivos en dispositivos iOS. La pregunta era: si elimino un archivo usando NSFileManager, ¿qué sucede debajo del capó?
Tengo entendido que la eliminación se realiza al eliminar la entrada de archivo correspondiente de la tabla del sistema de archivos.
El argumento contrario es que un identificador de archivo permanece de alguna manera y solo se establece un indicador que marca el archivo como eliminado. Si el usuario tuviera acceso de root al dispositivo iOS, podría restablecer esa marca y recuperar el contenido del archivo.
En ambos casos, aceptamos que el contenido real del archivo no se sobrescribirá y que los bytes simples aún existen en la memoria flash / disco hasta que el bloque esté ocupado por otro archivo.
La idea es ahora: si la segunda versión es verdadera, podríamos sobrescribir el archivo con un contenido de un byte antes de eliminarlo (incluso si ese byte se escribe en una nueva ubicación en la unidad flash sin sobrescribir el contenido anterior). Si luego se recupera el archivo, solo está disponible el contenido sobrescrito de un byte.
Tenga en cuenta que no estamos hablando del análisis forense de la unidad flash que podría recuperar el contenido del archivo original.
Entonces para recapitular:
- ¿Cómo funciona internamente la eliminación de un archivo en iOS?
- ¿El enfoque de sobrescritura evita la recuperación?