Tengo un sitio de páginas de GitHub donde estoy alojando un proyecto. Permite a los usuarios exportar sus datos desde localStorage como objeto JSON en cadena a un archivo .txt. Luego pueden importar sus datos desde ese archivo .txt, que almacenará su contenido en localStorage.
Hacer que peguen el contenido del archivo en un cuadro de texto es una opción, pero dado que pretendo que esta sea una aplicación de una sola página para usar en dispositivos móviles, esa no es una experiencia de usuario ideal.
¿Cómo me aseguro de que no carguen datos maliciosos, incorrectos o inutilizables?
En lo que respecta a la seguridad, no estoy seguro de qué tan arriesgado es esto, ya que las Páginas de GitHub solo alojan páginas estáticas, y no estoy tratando con datos confidenciales de ninguna manera. Aún así, parece que debería estar haciendo algo más que aceptar archivos de texto sin formato.
Lo primero que viene a la mente para validar los datos es usar expresiones regulares u otra forma de fórmula para verificar el contenido del objeto. Los datos se organizan como un objeto de objetos; todos los objetos secundarios tendrán las mismas claves con diferentes valores, y la cantidad de objetos puede variar. También planeo crear una forma de manejar las cargas de archivos vacíos, donde por defecto se establece localStorage en {}.