Ho bisogno di alcuni chiarimenti sui problemi che CORS (Cross-Origin Resource Sharing) può causare. Supponiamo che il sito A.COM abbia abilitato CORS, in particolare:
- Access-Control-Allow-Origin può essere impostato su qualsiasi sito Web nella richiesta HTTP e viene copiato nella risposta
- Access-Control-Allow-Credentials può essere impostato su true
Detto questo, supponiamo che nel seguente percorso A.COM: A.COM/user.php?id=USER_ID
sia ospitato la password dell'utente (non realistico, ma andiamo avanti).
Il possibile scenario di attacco è:
- L'attaccante crea una pagina ospitata in B.COM dove c'è una funzione Javascript che, quando la pagina viene caricata, invia una richiesta HTTP (con l'intestazione di origine impostata) a
A.COM/user.php?id=USER_ID
ottiene il risultato e lo memorizza da qualche parte (magari con ulteriori richiesta http a un'altra pagina di attacco) - L'attaccante deve forzare l'utente a caricare B.COM
Quindi, la mia domanda è:
Per accedere a A.COM/user.php?id=USER_ID
, un utente deve essere autenticato e disporre di un cookie set, l'utente malintenzionato deve essere sicuro che l'utente attaccato abbia un cookie valido per A.COM e che l'utente malintenzionato debba conoscere la struttura Web di A.COM?
Se l'utente attaccato non ha effettuato l'accesso e non ha alcun set di cookie, l'attacco non funziona?
Grazie per i chiarimenti.
E.