Comencemos el artículo con un pequeño experimento. Echa un vistazo a las dos URLs siguientes, y responde, ¿a qué dominio dirigen?
Si has pensado 'Fácil, a bbc.com', tienes razón a medias: la primera URL conduce a ese dominio… ¿la segunda? Ni por asomo. Si estás confundido es porque, a pesar de que los usuarios de Internet nos pasamos el día clicando en URLs, en realidad sabemos poco sobre ellas.
El truco de la arroba
La cuestión es que, en realidad, todo lo que hay entre 'https://' y el símbolo de la arroba está siendo ignorado por el navegador. En origen, los dominios web podían tener una estructura similar a los e-mails, indicando un 'nombre de usuario' antes de la '@'.
En caso de usarlo, le estábamos diciendo al sitio web que nos logueara con dicho username. De hecho, podíamos usar la siguiente estructura para incluir la contraseña también en la URL:
http:// user:pass@website.com
Sin embargo, hoy en día los navegadores modernos, por seguridad, evitan que sus usuarios puedan autenticarse accidentalmente con un solo clic en sitios web, por lo que ignoran todo lo que introduzcamos antes de la arroba y se limitan a dirigir al usuario a la parte de la URL que queda a la derecha de ésta.
Anatomía de una URL
Es posible que a estas alturas hayas visto un par de posibles fallos en el ejemplo que pusimos al comienzo del artículo. Los abordaremos luego, ahora vamos a repasar todas las partes de que puede componerse una URL:
- Protocolo: Indica al navegador cómo debe conectarse al servidor. No es lo mismo "http://" que su versión segura ("https://") —aunque ambas se conectan a páginas web—, o que "mailto://" (para direcciones de e-mail), "ftp://", "gopher://", etc. Uso obligatorio, aunque los navegadores ya no siempre lo muestran.
- Información de login: Ya explicado más arriba, podemos indicar sólo el nombre de usuario o incluir también la contraseña. Uso opcional y cada vez menos frecuente.
- Dominio: Es el eje en torno al cual gira una URL, le dice al navegador a qué máquina de Internet conectarse (con la ayuda de las DNS). Uso obligatorio. En algunos casos puede aparecer dividido por un punto, indicando un 'subdominio' (1ercurso.colegio.es).
- Puerto: Cada protocolo tiene un puerto o puertos vinculados por defecto, pero en algunos casos podemos querer indicar al navegador que se conecte, por ejemplo, a un servidor web secundario instalado en la misma máquina que otro: en esos casos, lo habitual es recurrir a especificar un puerto distinto. Uso opcional.
- Ruta: Cuando no queremos acceder a la página principal, sino a un subdirectorio de sitio web. Uso opcional, pero muy frecuente.
- Parámetro: También conocido como 'query', describimos aquí con detalle sus múltiples usos.
- Fragment: Para indicar al navegador que no muestre la página deseada desde el principio, sino que se localice en un punto concreto de dicha página.
"¡Pero no existen dominios con extensiones de archivo!" (Sí lo hacen)
Volviendo al ejemplo que pusimos al principio, ya puedes deducir que, al contrario que la primera URL mencionada, la segunda no nos conduce a un archivo ZIP en el servidor de la BBC, sino —recuerda lo que dijimos sobre el uso de la '@'— al dominio 'informeonu23.zip'.
Si estás pensando que los '.zip' no son extensiones de dominio válidas, estás desactualizado. Y es que este mismo mes Google ha lanzado al mercado 8 nuevas extensiones de dominio:
- .dad
- .phd
- .prof
- .esq
- .foo
- .zip
- .mov
- .nexus
Como puedes ver, las extensiones .zip (de archivos comprimidos) y .mov (de películas) están ahí. Y ya de antes existían las .sh (dominio territorial de Santa Helena, coincidente con los scripts de Bash), .pl (dominio territorial de Polonia, coincidente con los ficheros de Perl) y .rs (dominio territorial de Serbia, coincidente con los ficheros de Rust).
Imagina que un ciberdelincuente hubiera contratado el dominio .zip del ejemplo y que los usuarios, al acceder al mismo desde un enlace malicioso como aquel, efectivamente se descargasen un archivo ZIP que, obviamente, nada tiene que ver con la BBC: podría ser una fuente de malware.
Y ahora imagina si ocurriera lo mismo… pero usando un repositorio oficial de GitHub antes de la '@'.
"¡Eh, las '/' no se pueden usar en nombres de usuario!" (Es cierto, no se puede, pero…)
Si las '/' que usamos para formar URLs no pudieran incluirse en nombres de usuario (como tampoco se pueden incluir, y por las mismas razones, en nombres de archivo), el ejemplo de URL maliciosa que pusimos no sería válido, pues saltaría un error. ¿Significa que has leído todo esto para nada?
No. Porque si bien no podemos usar /, sí podemos usar (y, de hecho, es lo que hemos usado) el símbolo ∕ . Prácticamente indistinguible, ¿verdad? Son las trampas de los símbolos ASCII, qué le vamos a hacer.
Por eso debemos tener mucho cuidado con esta potencial estafa, que aún no ha sido detectada siendo usada por ciberestafadores, pero que sin duda empezaremos a ver en breve, ahora que cualquiera puede registrar los nuevos dominios .ZIP.
Vía | Bobbyr en Medium
Imagen | Daniel en Pixabay + Miguel Á. Padriñán en Pixabay
En Genbeta | Alojamientos web: qué son y cuántas clases existen