La compressione HTTP è controllata dal server web, si configura IIS / Apache / Other come appropriato e questo imposta l'intestazione di compressione che il browser comprende e tratta il contenuto come di conseguenza.
BREACH è una vulnerabilità in applicazioni che usano la compressione HTTP, riflettono una sorta di input dell'utente e riflettono anche un segreto, come - come dici tu - un token CSRF. l'attaccante quindi trae vantaggio dalle differenze nelle dimensioni di risposta per determinare i segreti. C'è una buona spiegazione di BREAK qui
Semplici attenuazioni includono la disabilitazione della compressione che potrebbe non essere pratica a seconda dell'applicazione. Poiché la compressione viene eseguita a livello di server Web, la determinazione del momento in cui comprimere l'applicazione può essere complicata, un approccio più semplice consiste nell'iniezione di rumore sulla risposta in pagine vulnerabili. Una stringa casuale di lunghezza casuale iniettata nella risposta è una buona contromisura se si desidera mantenere abilitata la compressione.