Ho una domanda riguardante un potenziale problema di sicurezza/limitazione relativo a JavaScript ospitato su un dominio (es: dominio di una CDN, ad esempio example.com), ma caricato da un sito Web in un dominio diverso (ad esempio, esempio.net).Un codice JavaScript ospitato su un dominio diverso può leggere/modificare il DOM di un altro dominio?
Ora immagina che il JavaScript caricato leggerà/modificherà il testo in un div
con un particolare ID, quindi niente "complicato". Un esempio: ho lo script caricati da http://example.com/myscript.js, e giustiziato il http://example.net/index.html: [notare la diversa TLD!]
<!-- Page example.net/index.html -->
<script src="http://example.com/myscript.js"></script>
So che non posso accedere al cookie sotto mysite.com dal JavaScript, ma io può accedere a tutti i DOM sulla pagina e, nel caso, modificarlo. Non è questo un possibile problema di sicurezza? Non dovrebbe questo innescare la protezione della stessa origine politica?
Esistono agenti utente che impediscono a un JavaScript ospitato su un dominio diverso di accedere agli elementi nella pagina che esegue lo script?
E, inoltre, l'esempio sopra funzionerà anche su pagine HTTPS? (Es: https://example.net/index.html carichi lo script da https://example.com/myscript.js)
Sì, ed è esattamente il motivo per cui i CDN vengono utilizzati per caricare i file js. –
Grazie per la risposta dettagliata. Per quanto riguarda i cookie, se voglio impostare un cookie "globale" da example.com (cookie inviato tramite intestazione Set-Cookie in risposta che contiene lo script JS), può essere letto da tutti i siti che caricano lo script da example.com (il CDN), dovrei presumere che questo è impossibile, giusto? –
corretto. Vedere la nota nella risposta sull'utilizzo del codice lato server. – Quentin