Circa diversi anni fa ho trovato un sito web durante un pentest che aveva l'intestazione Access-Control-Allow-Origin impostata su " * ". Ho creato un POC per ottenere la risposta di una pagina Web da un dominio non attendibile. L'obiettivo era ottenere il token CSRF dalla pagina Web, che è stata visualizzata per gli utenti registrati. Quindi la richiesta HTTP eseguita dal POC ha effettivamente inviato i cookie dell'utente.
Lo scenario era come questo:
- L'utente è registrato su a.com
- L'utente carica POC da attack.com
- Il POC invia una richiesta HTTP con i cookie dell'utente a a.com
- Il POC recupera il token CSRF ed esegue azioni su a.com
Sono abbastanza sicuro che il POC ha inviato i cookie dell'utente, che non ho usato l'attributo withCredentials e l'intestazione Access-Control-Allow-Credentials non era presente nel sito web di destinazione. Ho usato Firefox in questo momento.
Al giorno d'oggi, l'intestazione Access-Control-Allow-Credentials: true è necessaria per consentire alla risposta di essere disponibile più Access-Control-Allow-Origin l'intestazione non deve essere impostata su * se i cookie vengono inviati.
Quindi la mia domanda è, da quando questa restrizione è stata aggiunta?