È un rischio per la sicurezza che i browser possano ottenere liberamente immagini (e / o altre risorse) tra domini diversi?

3

La stessa politica di origine ci protegge da un sito malevolo che manipola i dati sul nostro sito attendibile non consentendo le richieste che invierebbero il cookie auth, ad es. Ma se capisco correttamente le immagini, gli script, ecc. Sono un'eccezione da quella regola.

Vedi per es. qui :

A web page may freely embed images, stylesheets, scripts, iframes, videos.Certain "cross-domain" requests, notably AJAX requests, however are forbidden by default by the same-origin security policy.

Significa che se ho una "immagine segreta" su Facebook (o qualsiasi altra risorsa con autenticazione sessione cookie) qualsiasi sito dannoso che accidentalmente visito sarà in grado di caricare quell'immagine in un tag nascosto, ad es. e leggerlo? Dovrebbero sicuramente conoscere l'url, ma per molti siti può essere facile come indovinare gli id (o enumerarli 1,2,3 ...).

Questo non mi sembra sicuro. Mi manca un punto qui? Sembra che l'auto-invio di cookie per tutte le richieste e i cookie in generale sia solo un male per la sicurezza (non per gli annunci, sebbene siano strongmente basati su questa funzione "carina" se non ricordo male).

Dovrebbe essere anche peggio per iframe (se puoi incorporare e leggere dati da una banca iframe, ad esempio), quindi in qualche modo deve essere protetto.

    
posta Ilya Chernomordik 27.10.2016 - 10:58
fonte

1 risposta

3

Does that mean that if I have a "secret image" on Facebook (or any other resource with cookie session auth) any malicious site that I accidentally visit will be able to load that image in a hidden tag e.g. and read it?

Hai ragione fino alle ultime due parole. Sì, qualsiasi sito che visiti può caricare l'immagine segreta nel tuo browser. Ma non può leggerlo (a meno che Facebook non abbia una politica CORS che lo consenta).

Per leggi i valori dei pixel da un immagine con JavaScript dovresti fare qualcosa come caricarlo su una tela e poi usare getImageData() o simili. Tuttavia, quando si carica un'immagine di origine incrociata in una tela, la tela viene "macchiata" e tali funzioni vengono bloccate. Questo per prevenire il tipo di rischio di cui stai parlando. (Leggi ulteriori informazioni su Mozilla .)

Quindi tutto ciò che il sito dannoso può fare è caricare l'immagine nel tuo browser dove solo tu , non loro, guardalo. E questo non è molto utile.

Esistono protezioni simili per es. iframe. Mentre evil.com può visualizzare bank.com in un iframe, JavaScript caricato da evil.com non può leggere alcun dato dall'interno dell'iframe. Quindi tutti gli aggressori possono fare è visualizzare il saldo del tuo account. E questo è tutto ciò che riguarda il SOP.

    
risposta data 27.10.2016 - 11:18
fonte

Leggi altre domande sui tag