¿Cuál es el propósito de usar los identificadores alfanuméricos del estilo de Youtube como slugs de URL?

4

Le pregunté a una pregunta en StackOverflow sobre cómo generar los ID de recursos alfanuméricos / base64 que Youtube, Instragram y otros utilizan para identificar videos / imágenes / etc. La discusión llevó a la pregunta de por qué se usan estos ID.

Supuse que era por dos razones:

  1. Para acortar las URL de los ID de enteros largos a los más cortos.
  2. Para evitar el pirateo ocasional de URL, edite la URL en un navegador.

¿Es esto cierto? ¿Por qué se utilizan estas ID?

    
pregunta kevboh 26.09.2012 - 17:03
fuente

2 respuestas

6

Youtube debe producir una URL mediante la cual se pueda hacer referencia a los videos. Prefieren que la URL sea corta. Pueden elegir la ID de cualquier forma que consideren adecuada, siempre que coincida con sus restricciones, en particular:

  • La ID debe ser única (no hay dos videos que puedan compartirla).
  • La ID debe "funcionar bien" con cualquier mecanismo de indexación que use internamente.

Derivar el ID del video "título" sería problemático de varias maneras: difícil de garantizar la singularidad, el caos habitual relacionado con Unicode cuando las personas tienen la arrogancia insoportable de usar caracteres que no están en el conjunto ASCII, y cadena indexación basada (aunque puedo imaginar que una base de datos sería más feliz con un entero de 64 bits como clave de indexación).

No hay problema de seguridad a priori aquí. Habría un problema de seguridad si la URL estuviera destinada a hacer referencia a documentos no públicos, en cuyo caso la capacidad de "adivinar" una URL válida sería problemática (una posible solución sería incluir una < a href="http://en.wikipedia.org/wiki/Message_authentication_code"> MAC en la ID). Pero los videos de Youtube son intrínsecamente públicos (no tienen ningún sentido de lo contrario, ya que algunos de ellos no tienen ningún sentido).

    
respondido por el Thomas Pornin 26.09.2012 - 18:13
fuente
2

@kevboh, no creo que la seguridad sea la principal preocupación, es solo una forma de que los sitios mantengan los recursos directamente de tal manera que sean fáciles de diferenciar. No hay ningún problema de seguridad que arreglar; Instagram y YouTube quieren que las personas vean su contenido, no hay nada que intenten ocultar.

¿Qué propósito de seguridad serviría la aleatorización en este caso? ¿Impedir que las personas adivinen la fecha de creación de un recurso cuando la fecha ya está disponible libremente para cualquiera que use el contenido?

La razón principal de la aleatorización en este caso no es asegurar nada, sino garantizar que las personas tengan que usar las herramientas de búsqueda y las API de la empresa para encontrar el contenido. Si pudiera adivinar los ID de recursos de los contenidos, podría pasarlos por alto, y porque sus modelos de negocios se basan en la venta de información de elección de búsqueda que podría hacerles perder dinero.

    
respondido por el GdD 26.09.2012 - 18:03
fuente

Lea otras preguntas en las etiquetas