Conosco un po 'di storia e il suo scopo.
Originariamente Facebook Immagine URL simile a questa
https: // {* snipped *} /XXXXXXXXXXX_b.jpg
ma ci sono più che sulla dimensione dell'immagine disponibili così le persone hanno accesso miniatura a può semplicemente sostituire il suffisso _b con _n
(Quindi ora è https: // {* snipped *} /XXXXXXXXXXX_n.jpg)
per accedere a una versione più grande dell'immagine (se disponibile).
Qualche tempo dopo facebook implementa un sistema di immagini centrale che può ritagliare e ridimensionare dinamicamente l'immagine al volo su richiesta.
l'URL fornito da Facebook a questo punto del tempo può apparire come segue:
https: // {* snipped *} .fbcdn.net/hProfile-xxx1/v/t1.0-1/p32x32/12345678_123412341234123_4123412341234123412_n.jpg
E quando la gente vede l'url, la loro curiosità sorge.
Proviamo a rimuovere alcuni parametri dall'URL.
https: // {* snipped *} .fbcdn.net/hProfile-xxx1/v/12345678_123412341234123_4123412341234123412_n.jpg
E ciò che ottengono è la versione più grande e completa delle immagini che possono eventualmente ottenere dal server di facebook.
Questo metodo funzionava da molto tempo.
Quando le persone vedono l'immagine nella loro e-mail (per la maggior parte foto del profilo) possono ottenere la versione completa dell'immagine senza nemmeno accedere a Facebook.
Stava funzionando ovunque includere foto profilo privato.
La soluzione rapida e la soluzione più economica per Facebook è quella di firmare il percorso della richiesta con un algoritmo di firma.
Immagino che utilizzino l'HMAC come algoritmo principale e derivino l'input HMAC da varie fonti incluso il percorso della richiesta.
Ciò garantirà che l'unica parte che può generare URL valido sia quella con la chiave HMAC. (presumibilmente solo facebook)
Ora il vecchio problema è stato risolto, non è più possibile utilizzarlo ma ci sono più di un problema che è possibile risolvere aggiungendo MAC.
È l'annullamento dell'accesso alle immagini.
Diciamo che le persone una volta pubblicano la loro foto (ora altre possono avere sia un percorso di richiesta valido che una firma firmata da facebook) e in seguito cambiano idea e rendono la foto privata.
Tuttavia, le persone con url e firma validi possono ancora recuperare l'immagine dal server di Facebook.
Per risolvere questo problema con una risorsa super economica, considerato che implementano già il calcolo HMAC.
(E per oscurare il fatto che Facebook non cancella effettivamente la tua immagine dal loro sistema quando la elimini.)
Hanno deciso di mescolare il valore derivato dal timestamp in input di HMAC.
(Vedi RFC-6238 per uso simile)
Quindi è necessario periodicamente l'aggiornamento di firma da Facebook per ottenere l'accesso alla foto.
Questo ha risolto quest'ultimo problema con una risorsa aggiuntiva molto economica.
E qui ce l'hai.
Alcuni di storia e logica dietro i parametri di Facebook.
Sono certo che non esiste un documento ufficiale sull'intervallo di tempo, ma non dovrebbe essere difficile fare qualche esperimento da soli considerato che ora si sa che il valore del frame temporale desiderato è fisso e prevedibile.
Hai trovato qualcosa a riguardo? Ho appena avuto lo stesso problema. – cappie013
Non esiste una soluzione reale. Cosa abbiamo fatto per aggirare questo problema. Per scaricare l'immagine entro 24 ore e conservarla altrove. – Luc