1 votos

¿Por qué las aplicaciones imponen los permisos de lectura y escritura para que otras aplicaciones los utilicen?

Mientras lee un libro, Desarrollo de aplicaciones inalámbricas para Android , dice que

Las aplicaciones también pueden imponer sus propios permisos declarándolos para que otras aplicaciones los utilicen. Las aplicaciones pueden declarar cualquier número de tipos de permisos diferentes, como permisos de sólo lectura o de lectura-escritura, para un control más fino sobre la aplicación.

No pude entender por qué las aplicaciones necesitan establecer lectura-escritura o Sólo lectura permisos para permitir otro para utilizar sus aplicaciones.

Por ejemplo, como se ilustra en Desarrollador de Android , muestra cómo una aplicación utiliza otra aplicación de Mapas para mostrar su dirección. Pero, ¿por qué la aplicación necesita establecer Sólo lectura o lectura-escritura permisos para permitir otro ¿aplicación para usarla?

2voto

Andy Brudtkuhl Puntos 1714

Porque si la aplicación almacena tus datos, es responsable de mantenerlos en secreto. Por ejemplo, supongamos que hay una aplicación que almacena algo que prefieres mantener en secreto, como tu colección de álbumes de Jason Donovan. Esta aplicación tendría una base de datos con la información relevante dentro, y esta base de datos es privada para la aplicación. Ninguna otra aplicación puede leerla (sin Root), y así tu vergonzoso gusto musical se mantiene en secreto.

Ahora digamos que el autor de la aplicación quiere permitir que otras aplicaciones utilicen los mismos datos. Podría ser otra aplicación del mismo autor, o podría ampliarla para permitir que otros autores accedan a los datos. De este modo, otras aplicaciones podrían añadir un widget en la pantalla de inicio con el álbum del día de Jason Donovan, o crear entradas en el calendario para el aniversario del lanzamiento de cada álbum, o importar cualquier otra cosa. Para ello, crea un proveedor de contenidos añadiéndolo a la manifiesto y la publicación de instrucciones para los desarrolladores sobre el formato de los datos y cómo acceder a ellos. El proveedor de contenidos es como un servidor: proporciona una forma de que otras aplicaciones consulten los datos de la aplicación y obtengan resultados, sin acceder directamente a la base de datos.

Si eso es todo lo que hace, entonces cualquier aplicación instalada puede acceder a los datos. Instalas una aplicación de linterna de aspecto inocuo que sólo tiene permiso para "INTERNET" y, de repente, es capaz de averiguar toda tu música vergonzosa y enviarla por correo electrónico a los estafadores con fines de chantaje. Obviamente, esto no es deseable: un desarrollador de aplicaciones que permita que esto ocurra no debería ser confiado con tus datos.

El desarrollador de la aplicación puede evitarlo creando un nuevo permiso y dándole una descripción legible para el ser humano, como por ejemplo "Lee tus álbumes favoritos de Jason Donovan". La creación del permiso no hace nada por sí misma: también tiene que cambiar el proveedor de contenidos para que cuando una aplicación lo consulte, compruebe que esa aplicación tiene el permiso antes de responder a la solicitud. Si la aplicación tiene el permiso, le da los datos que pidió; si la aplicación no lo tiene, puede optar por darle un excepción (un error que indica al programa cuál es el problema), o simplemente para no devolver ningún resultado o resultados parciales. Por ejemplo, puede indicar a la aplicación los álbumes de los Rolling Stones que no le dan vergüenza, pero no los álbumes vergonzosos de Jason Donovan.

De esta manera, la aplicación de linterna de aspecto inocuo no puede acceder a tus datos. Antes de instalar una app que quiere acceder a los datos, puedes ver "Leer tus álbumes favoritos de Jason Donovan" en la lista de permisos, y puedes abortar la instalación si no confías en el autor de la app con esa información.

El número de permisos que crea la aplicación depende del tipo de acceso que ofrece a otras aplicaciones y de lo precisos que deben ser los controles. En nuestro ejemplo, la aplicación no ofrece a otras aplicaciones la posibilidad de añadir álbumes, por lo que no es necesario un permiso de lectura y escritura. Incluso si lo hiciera, puede ser que la aplicación sólo tiene un permiso de lectura-escritura, que otras aplicaciones necesitan tener para ver la lista de álbumes o editar la lista. Esto puede ser suficiente para una aplicación simple como esta. Pero para algo como una aplicación de medios sociales, es más importante limitar la cantidad de aplicaciones que pueden enviar mensajes (o escribir contenido) en tu nombre, por lo que en ese caso se podrían utilizar dos permisos distintos. Es el autor de la aplicación quien debe decidir cuántos permisos son apropiados para la aplicación, dando a los usuarios el control sobre su privacidad sin crear combinaciones confusas y difíciles de entender.

0 votos

Esa es una buena respuesta descriptiva. Pero ¿podría decirme por qué dijo lo de chantaje Creo que por tus canciones secretas nadie te chantajearía o sólo querías dar un ejemplo. ¿Hay alguna aplicación que utilice tanto el permiso de lectura como el de escritura para dar datos a otra aplicación?

0 votos

El chantaje de las canciones de Jason Donovan es sólo un ejemplo. Seguro que tienes otros datos en tu teléfono que no querrías que estuvieran en manos de los malos. La aplicación integrada de contactos es un ejemplo que utiliza permisos de lectura y escritura por separado. Conceder los permisos no es diferente a los incorporados: el usuario concede el permiso cuando instala la app que necesita ese permiso.

0 votos

Pero, ¿es necesario el permiso de escritura? Lo pregunto porque en un Contactos aplicación aunque una (otra aplicación) añadiera contactos a la Contactos Creo que añadir contactos simplemente no tendría problemas de seguridad, ¿no es así?

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X