Los navegadores generalmente no permiten que las páginas web interactúen con el sistema de archivos del lado del cliente como medida de seguridad. Me gustaría saber qué puede salir mal con el siguiente escenario:
Al hacer clic en un hipervínculo especial en un navegador, se abre una carpeta especificada en el explorador de archivos de Windows.
Pasos para lograr esto:
- Una aplicación de controlador de protocolo está instalada en las máquinas del navegador.
- Se registra para el protocolo
nfx:
, (similar a los clientes de correo, que registran el protocolomailto:
) - Cuando un usuario hace clic en un hipervínculo con un
href="nfx://machinename/share/folder/"
- La aplicación Protocol Handler se inicia con la URL anterior como un argumento de proceso por parte del navegador.
- Todos los
/
se convierten a Separador de ruta (por ejemplo,\
),nfx:
se elimina desde el inicio de la URL. Y el resultado\machinename\share\folder\
se comprueba si el directorio existe. - Si existe, se le pide al usuario que confirme si desea abrir esta carpeta. Si el usuario confirma, entonces se inicia
explorer.exe
con\machinename\share\folder\
como parámetro. - Salidas de la aplicación del iniciador de protocolo.
Por qué se hizo esto (en caso de que esto sea un problema de XY):
- Tengo un requisito donde los instaladores actualizados regularmente se mantienen en una ruta de red.
- Una página web mostrará una lista de todos los instaladores disponibles.
- Al hacer clic en el enlace, el usuario debe ir a la ubicación del instalador.
- No se espera que descarguemos o iniciemos directamente el instalador desde la página web. El usuario puede decidir si desea ejecutar el instalador una vez que se abra la carpeta en el explorador de Windows.
¿Qué tan peligroso será abrir una carpeta de red o una carpeta local como esta?