Qual è lo scopo dell'utilizzo di ID alfanumerici in stile Youtube come slug URL?

4

Ho chiesto una domanda su StackOverflow su come generare gli ID risorsa alfanumerici / base64 che YouTube, Instragram e altri utilizzano per identificare video / immagini / ecc. La discussione ha portato alla domanda perché questi ID sono usati.

Ho pensato che fosse per due ragioni:

  1. Per abbreviare gli URL da ID intero lungo a quelli più brevi.
  2. Per impedire l'hacking di URL casuali modificando l'URL in un browser.

È vero? Perché vengono utilizzati questi ID?

    
posta kevboh 26.09.2012 - 17:03
fonte

2 risposte

6

YouTube deve produrre l'URL tramite il quale i video possono essere referenziati. Preferiscono che l'URL sia breve. Possono scegliere l'ID nel modo che ritengono opportuno, a condizione che corrisponda ai loro vincoli, in particolare:

  • L'ID deve essere univoco (non possono essere condivisi due video).
  • L'ID deve "funzionare bene" con qualsiasi meccanismo di indicizzazione utilizzato internamente.

Derivare l'ID dal "titolo" del video sarebbe problematico in diversi modi: difficile garantire l'unicità, il solito caos legato all'unicode quando le persone hanno l'insopportabile arroganza dell'uso di caratteri che non sono nel set ASCII, e stringa- indicizzazione basata (mentre posso immaginare che un database sarebbe più felice con un numero intero a 64 bit come chiave di indicizzazione).

Qui c'è a priori nessun problema di sicurezza. Ci sarebbe un problema di sicurezza se l'URL intendesse fare riferimento a documenti non pubblici, nel qual caso la capacità di "indovinare" un URL valido sarebbe problematica (una possibile soluzione sarebbe quindi includere un < a href="http://en.wikipedia.org/wiki/Message_authentication_code"> MAC nell'ID). Ma i video di Youtube sono intrinsecamente pubblici (non hanno senso altrimenti - già, alcuni di essi non hanno comunque senso)

    
risposta data 26.09.2012 - 18:13
fonte
2

@kevboh, non credo che la sicurezza sia la preoccupazione principale, è solo un modo per i siti di mantenere le risorse dritte in modo tale che siano facili da distinguere. Non c'è alcun problema di sicurezza da risolvere; instagram e youtube vogliono che le persone visualizzino i loro contenuti, non c'è nulla che stiano cercando di nascondere.

Quali finalità di sicurezza servirebbe la randomizzazione in questo caso? Impedire alle persone di indovinare la data di creazione di una risorsa quando la data è già disponibile gratuitamente per chiunque utilizzi il contenuto?

Il motivo principale per la randomizzazione in questo caso non è garantire nulla, ma garantire che le persone debbano utilizzare gli strumenti di ricerca e le API dell'azienda per trovare il contenuto. Se si possono indovinare gli ID delle risorse dei contenuti, è possibile ignorarli e poiché i loro modelli di business si basano sulla vendita di informazioni sulle scelte di ricerca che potrebbero far loro perdere denaro.

    
risposta data 26.09.2012 - 18:03
fonte

Leggi altre domande sui tag