James Kettle jó írást készít a gyakorlati HTTP gazdagép fejléc támadásairól. Ezeket itt foglaljuk össze a Django ALLOWED_HOSTS stratégia leírásával.
Sebezhetőségek
Jelszó-visszaállító vektor
A jelszó-visszaállító e-mail biztonsági rés, amelyre a dokumentáció utal, egy a Django és / vagy alkalmazásai eredményei, amelyek a kliens által biztosított HTTP gazdagépet használják és megbíznak benne (rossz ötletnek hangzik?). A gazdagépet közvetlenül a jelszó-visszaállító e-mailekbe másolják, ami hasznos injektálási vektort nyújt.
Gyorsítótár-mérgezés
A gyorsítótár-mérgezés változata erre a viselkedésre támaszkodik, valamint az eltérő módokon. A HOST fejlécet kiszolgálók és gyorsítótár-megoldások kezelik.
HTTP_SERVER vs HTTP ['HOST']
Amint a Kettle leírja, az RFC2616 miatt kompatibilis szerverekkel lehet eltérést használni a HTTP_SERVER és a HTTP ['HOST'] között tetszőleges gazdagép-karakterláncok előállításához.
Gépelemzés
Különböző formátumok kihasználásával és speciális karakterek használatával a támadó "engedélyezett" hosztot okozhat rosszindulatúan kell értelmezni a különböző összefüggésekben. Ez ismét hiba az alkalmazásban, amely megbízott a hoszt karakterláncában.
Django megoldás
Amint a Catskul által biztosított kiadási megjegyzések összefoglalják, a Django megoldás hogy a felhasználó az engedélyezett gazdagépeket betegye közvetlenül a projekt kódjába. Azáltal, hogy betilt minden olyan állomást, amely nem felel meg az ALLOWED_HOSTS
-nak, kiküszöböli az injekciós vektort (a „fehér lista” megközelítés).
Ez valami nehézkes megoldás, mint James rámutat, de meglehetősen hatékony is.
Ne feledje
Lehetséges helyettesítő karakterek használata a projekt beállításaiban, ebben az esetben ez a funkció nem segít semmit sem biztosítani.
A biztonságos alkalmazásfejlesztő elkerüli a HTTP gazdagép értelmes használatát.
Hivatkozások
Carlos Bueno, Gyorsítótár-mérgezés (2008)