Perché i CDN non richiedono l'autenticazione per accedere ai file statici?

1

Perché aziende come Facebook non richiedono richieste HTTP / HTTPS autenticate per accedere ai contenuti (come le immagini) usando CDN?

In un certo senso, una volta che un "amico" può accedere all'URL dell'immagine, può effettivamente pubblicare quell'URL nel mondo, consentendo l'accesso anonimo. Questo è letteralmente "sicurezza attraverso l'oscurità", poiché si basa solo sull'URL costituito da un fbID (simile a UUID) che è segreto. Credo che Facebook definisca questo un modello di sicurezza basato su Capability, ma non avrebbe senso legare gli URL a determinati utenti per avere attribuzione, così come impiegare qualche forma di rotazione periodica URL / fbID?

    
posta Jedi 03.07.2016 - 21:01
fonte

1 risposta

4

La ragione di ciò sono le applicazioni su larga scala. Quando si hanno applicazioni su larga scala, il controllo dell'autorizzazione richiede quantità inaccettabili di risorse. Ecco perché le risorse statiche, come immagini, video e altri contenuti, vengono archiviate esternamente su server CDN statici utilizzando un token casuale, quindi la risposta autorizzata può includere questo token.

Questo significa che hanno bisogno solo di pochi server di database replicati e quindi possono disporre di grandi quantità di server CDN che si memorizzano reciprocamente in modo permanente.

I server distribuiti sono ciò che rende difficile anche la rotazione, dal momento che ai server CDN statici deve essere detto di ruotare quel valore. E questo incorre in un uso inaccettabile delle risorse, in quanto ciò deve essere fatto periodicamente. Al contrario di un valore casuale deve essere impostato solo al caricamento.

Anche il calcolo di un hash MD5, la generazione di un valore casuale o qualcosa che sembra "semplice", può rappresentare un notevole ostacolo per un server CDN distribuito.

Quindi il server è una semplice memorizzazione di file. Fondamentalmente, tutte le autenticazioni e la generazione di valori casuali avvengono sui "server attivi" (che eseguono il codice), mentre i server statici memorizzano solo file basati su nomi di file e servono file basati su nomi di file.

    
risposta data 03.07.2016 - 21:17
fonte

Leggi altre domande sui tag