Ushbu bo'limda noto'g'ri sozlash va buzuq biznes-logika saytlarni HTTP Host sarlavhasi orqali turli hujumlarga qanday ochib qo'yishini muhokama qilamiz. Bunday hujumlarga zaif saytlarni aniqlashning yuqori darajadagi metodologiyasini bayon qilamiz.

HTTP Host sarlavhasi HTTP/1.1 dan boshlab majburiy so'rov sarlavhasi. U mijoz kirmoqchi bo'lgan domen nomini ko'rsatadi. Masalan, foydalanuvchi https://portswigger.net/web-security ga tashrif buyurganda, brauzer quyidagi Host sarlavhali so'rov tuzadi:
GET /web-security HTTP/1.1
Host: portswigger.netHost sarlavhasining maqsadi — mijoz qaysi back-end komponent bilan aloqa qilmoqchi ekanini aniqlashga yordam berish. Bir xil IP manzilda bir nechta sayt joylashganda (virtual hosting yoki CDN/reverse proxy orqali marshrutlash), Host sarlavhasi mo'ljallangan qabul qiluvchini ko'rsatadi. Server so'rovni olganda, Host sarlavhasiga qarab mos back-end'ni aniqlab, so'rovni shunga yo'naltiradi.
HTTP Host header hujumlari Host sarlavhasi qiymatini xavfsiz bo'lmagan tarzda boshqaradigan zaif saytlardan foydalanadi. Agar server Host sarlavhasiga yashirincha ishonsa va uni to'g'ri tekshirmasa yoki escape qilmasa, hujumchi bu kiritmani server tomonidagi xatti-harakatni manipulyatsiya qiladigan zararli payloadlar inyeksiya qilish uchun ishlatishi mumkin ("Host header injection"). Ilovalar joriy domenni bilishi kerak bo'lganda (masalan emailda absolute URL generatsiya qilish), ular ko'pincha buni Host sarlavhasidan oladi:
<a href="https://_SERVER['HOST']/support">Contact support</a>Host sarlavhasi aslida foydalanuvchi boshqaradigani uchun, agar kiritma to'g'ri escape yoki tekshirilmasa, bu web cache poisoning, biznes-logika kamchiliklari, routing-based SSRF va SQL injection kabi klassik server tomonidagi zaifliklar uchun potentsial vektor bo'ladi.
Bu zaifliklarni o'zingiz aniqlash va ekspluatatsiya qilish bo'yicha qo'shimcha yo'riqnoma tayyorladik.
Eng oddiy yondashuv — server tomonidagi kodda Host sarlavhasidan umuman foydalanmaslik; ko'pincha relative URL ishlatish mumkin. Absolute URL kerak bo'lsa, joriy domenni konfiguratsiya faylida qo'lda belgilab, o'shanga murojaat qiling. Host sarlavhasini ishlatish kerak bo'lsa, uni ruxsat etilgan domenlar oq ro'yxati bilan tekshiring (masalan Django'dagi ALLOWED_HOSTS). X-Forwarded-Host kabi Host override sarlavhalarini qo'llab-quvvatlamang. Ichki virtual host'larni ommaviy kontent bilan bir serverda joylashtirmang.