Dire che c'è un sito foo.com
che carica JavaScript dal sito bar.com
. Ora, supponiamo che il codice JavaScript del sito bar.com
tenti di leggere i cookie utilizzando document.cookies
. Ho avuto l'impressione che utilizzando JavaScript, puoi leggere tutti i cookie impostati nel browser indipendentemente dalla loro origine. Ma si scopre che il codice JavaScript del sito bar.com
può accedere solo ai cookie impostati da bar.com
e non a nessun altro. Se questo è il caso, come vengono eseguiti gli attacchi di script injection che rubano i cookie?JavaScript e cookie di terze parti
risposta
Ma si scopre che il JavaScript dal sito bar.com può accedere solo ai cookie impostati da bar.com e non altri.
Questo non è vero. Ciò che importa è dove il documento HTML che contiene l'elemento <script>
è, non l'URL del file JS che dice <script>
menziona nell'attributo src.
Ho il sospetto che il tuo problema è che si sta accedendo document.cookies
quando la proprietà viene chiamata document.cookie
(Singolare!)
Caricare gli script all'interno della pagina attaccata.
Ad esempio, quando i commenti in un sistema di blog vengono compromessi, contengono un elemento script
che viene eseguito quando viene eseguito il rendering della pagina. Questo script può ottenere i cookie e inviarlo al server dell'attacker.
Ecco perché si dovrebbe mai input dell'utente fiducia e impedire che almeno alcuni tag nei commenti (o tradurre ogni <
-<
). Ma non farlo dal lato del cliente, poiché questa tecnica di prevenzione può essere facilmente aggirata; testare (e modificare) input dannosi sul lato server.
È possibile solo i cookie di accesso che sono stati impostati per il nome di dominio. Dal Wikipedia article on cookies:
Accanto alla coppia nome/valore, un cookie può contenere anche una data di scadenza, un percorso , un nome di dominio, e se il cookie è previsto solo per criptati connessioni. RFC 2965 invia i cookie hanno un numero di versione, ma questo è di solito omesso. Questi dati seguono la coppia name = newvalue e sono separati da punti e virgola. Ad esempio, un server può essere creato dal server inviando una riga Set-Cookie: nome = nuovo valore; scade = data; percorso = /; dominio = .esempio.org.
Il dominio e il percorso dire al browser che il cookie deve essere inviato al server quando richiedono URL di un dato dominio e percorso. Se non specificato, impostano automaticamente nel dominio e nel percorso dell'oggetto richiesto. Di conseguenza, il dominio e le stringhe di percorso possono comunicare al browser di inviare il cookie quando lo stesso non lo è. .Per motivi di sicurezza , il cookie è accettato solo se il server è un membro del dominio specificato dalla stringa di dominio.
Se foo.com
inviato un cookie che aveva il nome di dominio del bar.com
, o anche .com
, allora il codice javascript bar.com
in grado di leggere il cookie. Tuttavia, la maggior parte dei browser è configurata per accettare solo i cookie quando il nome del dominio corrisponde e rifiuta tale cookie.
Ho verificato che il cookie è presente ma JavaScript non è in grado di leggerlo. – roger
- 1. Come ottenere cookie di terze parti?
- 2. Iniezione JavaScript su pagine di terze parti
- 3. macdeployqt e librerie di terze parti
- 4. Ruby, Qt e widget di terze parti
- 5. Angular2 - Importazione di javascript di terze parti in SystemJS
- 6. Override di terze parti JS
- 7. Utilizzo del pacchetto javascript di terze parti con Meteor
- 8. JS di terze parti in Angular2 typescript
- 9. bloccare i cookie di terze parti - soluzione temporanea (app per Facebook ecc.)
- 10. resignFirstResponder() in tastiere di terze parti
- 11. COM surrogato per componente di terze parti
- 12. Gestione delle dipendenze interne di terze parti
- 13. Come pacchettizzare 2 dll di terze parti
- 14. Django's I18N con app di terze parti
- 15. iOS8 UIKeyboardWillShowNotification Altezza tastiera di terze parti
- 16. Applicazione dei metodi di terze parti virtualità
- 17. Librerie di terze parti in CMake
- 18. WCF - Autenticazione applicazione di terze parti
- 19. Libreria di terze parti con carosello Android
- 20. Politica P3P non funzionante per consentire i cookie di terze parti in IE
- 21. In che modo gli inserzionisti Internet utilizzano cookie di terze parti?
- 22. Per quanto riguarda OAuth 2.0: i cookie di terze parti abilitano una dipendenza?
- 23. Quali sono i rischi associati con l'hosting di Javascripts di terze parti?
- 24. Raccomandazione per fornitori di appartenenze di Asp.Net di terze parti
- 25. Come rilevare se la pagina è lenta a causa di javascript di terze parti?
- 26. Importazione di framework di terze parti in "SupportCode.swift" di Playground
- 27. Suggerire un'alternativa alla libreria di terze parti di Fiddler Core
- 28. L'icona di LibStatusBar scompare all'avvio dell'app di terze parti
- 29. Come allegare librerie di terze parti nella versione di rilascio
- 30. dotPeek Problema di debug di terze parti .dll
Questo è anche il modo in cui funzionano i CDN, come lo script jQuery caricato su questo sito: 'http: // ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js' non vivere sul dominio 'stackoverflow.com'. –
@David, la cosa dei cookie era un errore di ortografia durante la digitazione della domanda. Ho appena provato con alert (document.cookie) e ottengo solo una stringa vuota nonostante i cookie siano impostati. Sono piuttosto sconcertato. – roger
Ho eseguito un test. Il dominio non fa differenza. Forse i cookie che stai cercando di recuperare si trovano su un percorso diverso o sono impostati per essere solo HTTP. – Quentin