Saltar al contenido

Abrir con el sistema

La operación que resuelve la mitad de los casos sin ejecutar nada: pedirle al sistema que abra un fichero o una URL con lo que el usuario tenga. Y su único punto delicado.

Qué cubre

La tercera fila conecta con la fase V: abrir enlaces externos en el navegador del sistema era la conclusión del nivel 31.4, y ésta es la operación que lo hace.

El punto delicado

Y es uno solo: qué se abre.

Si el frontend puede pasar una cadena arbitraria a esta operación, tiene una vía para pedirle al sistema que abra cualquier cosa — y «cualquier cosa» incluye esquemas de URL que otras aplicaciones registran, y en algunos casos rutas a ejecutables.

El paso 3 elimina el problema en vez de acotarlo, y casi siempre es viable: las URLs que una aplicación abre son un puñado conocido, no un conjunto abierto.

Y el caso que sí necesita apertura arbitraria —un enlace que aparece dentro de contenido del usuario— merece dos cosas: comprobar el esquema y enseñarle al usuario a dónde va antes de abrirlo, que es lo que hace un navegador al pasar el ratón por encima de un enlace.

Abrir o mostrar

Una decisión pequeña con impacto en la experiencia:

  • Abrir el fichero es lo correcto cuando el usuario quiere verlo: un PDF exportado, una imagen generada.
  • Mostrarlo en el explorador es lo correcto cuando quiere hacer algo con él: moverlo, adjuntarlo a un correo, comprobar que existe.
  • Y en la duda, mostrar: abrir algo con una aplicación que el usuario no esperaba es más molesto que abrirle una carpeta.

Ofrecer las dos cosas —un enlace que abre y un botón pequeño que muestra en la carpeta— es lo que hacen las aplicaciones cuidadas, y cuesta una línea más.