Web cache poisoning: avvelenare ciò che viene servito a tutti
Le cache servono la stessa risposta per la stessa chiave (di solito URL + alcuni header). Se un input non chiave influenza la risposta, lo avveleni per tutti.
Il meccanismo
Header come X-Forwarded-Host spesso non entrano nella chiave ma vengono riflessi (in un link, uno script). L'attaccante manda una richiesta con l'header manipolato; la risposta avvelenata viene messa in cache e servita alle vittime successive.
GET / HTTP/1.1
X-Forwarded-Host: evil.com # finisce in <script src="//evil.com/...">
# la risposta cachata serve lo script malevolo a tuttiDifesa
Includi nella chiave di cache tutti gli input che influenzano la risposta, o (meglio) non riflettere header non fidati. Configura la cache per non memorizzare risposte che dipendono da header non chiave. Testa con strumenti come Param Miner per trovare input "unkeyed".