Estoy escribiendo una aplicación con Electron pero supongo que esto sería un problema para cualquier software que te permita abrir enlaces en el navegador predeterminado del usuario a través del sistema operativo.
Supongamos que tengo una aplicación que lee algo como un feed de twitter y lo muestra. Así que la aplicación muestra 10 entradas. Algunas de esas entradas tienen enlaces provistos por el usuario. Si el usuario hace clic en un enlace, deseo iniciarlo en el navegador predeterminado del usuario.
En Electron me dicen que debería llamar a electron.shell.openExternal(url)
. ¿Necesito estar filtrando URLs? Las URL comunes son, por ejemplo, http://xxx
, https://xxx
, mailto:xxx
, por lo que podría incluir en la lista blanca esos 3 tipos de URL. Al mismo tiempo, no quiero limitar erróneamente una buena funcionalidad. En otras palabras, no tengo idea de qué otros esquemas válidos hay. Permitir ftp://
? %código%? %código%? Así que preferiría simplemente pasar todo a través.
Al mismo tiempo, estoy preocupado, ¿hay URL potencialmente malas? Ejemplo hipotético: sftp://
¿Debo hacer una lista blanca? ¿Lista negra? ¿Filtrar? Si es así, ¿cuál es el filtro? ¿O debería simplemente pasarlos al sistema operativo?