Referer — HTTP request qaysi sahifa yoki resource’dan boshlanganini ko‘rsatishi mumkin bo‘lgan request header. Header nomi tarixiy imlo xatosi sabab Referer shaklida standardlashgan. U analytics, navigation, security va content optimizationda ishlatiladi.
Referer har requestda mavjud bo‘lishi kafolatlanmaydi. Browser policy, HTTPS, user privacy, extension va request turi uning qiymatini kamaytirishi yoki butunlay olib tashlashi mumkin.
Oddiy misol
User quyidagi sahifada linkni bosadi:
https://example.com/articles/dom
Yangi requestda:
Referer: https://example.com/articles/dom
headeri yuborilishi mumkin.
Aniq detail Referrer-Policyga bog‘liq.
Referrer va Referer
Tushuncha va policy nomlarida to‘g‘ri inglizcha referrer ishlatiladi:
Referrer-Policy
Request header esa tarixiy sabab:
Referer
deb yoziladi.
Ikkala yozuv amaliyotda uchraydi.
Referrer-Policy
Referrer-Policy header yoki HTML atributi qaysi ma’lumot yuborilishini boshqaradi.
Policy variantlari orasida:
no-referrer;origin;same-origin;strict-origin;origin-when-cross-origin;strict-origin-when-cross-origin;unsafe-url.
Har policy same-origin, cross-origin va downgrade holatlarida boshqa behavior beradi.
No-referrer
Referrer-Policy: no-referrer
hech qanday Referer yubormaslikni bildiradi.
Privacy kuchli, ammo analytics va ayrim anti-abuse signal kamayadi.
Application critical security qarorini faqat Referer mavjudligiga tayanmasligi kerak.
Origin
origin policy faqat scheme, host va portni yuboradi:
https://example.com/
Path, query va fragment berilmaydi.
Bu source saytni ko‘rsatib, aniq page detailini yashiradi.
Same-origin
same-origin faqat ayni origin requestlarida Referer yuboradi.
Cross-origin requestda header yo‘q.
Bu ichki navigation analyticsini saqlab, tashqi saytga ma’lumot chiqishini kamaytiradi.
Strict-origin-when-cross-origin
Zamonaviy browserlarda keng default policy sifatida uchraydi.
Behavior odatda:
Bu privacy va funksionallik o‘rtasida muvozanat yaratadi.
Query ma’lumoti
To‘liq URL Referer’da yuborilsa query parameterlar tashqi saytga chiqishi mumkin:
/search?q=maxfiy-soz
Shu sababli token, parol va sensitive data URLga yozilmaydi.
Referrer policy qo‘shimcha himoya beradi, lekin asosiy yechim sensitive qiymatni URLdan olib tashlash.
Fragment
URI fragment odatda Referer headerga kiritilmaydi.
Masalan:
/page#private-section
requestda #private-section yuborilmasligi kerak.
Biroq JavaScript joriy locationni o‘qib, boshqa analytics payloadga qo‘shishi mumkin.
HTTPS downgrade
Secure HTTPS sahifadan insecure HTTP resource’ga o‘tilganda ko‘p policy Referer’ni yubormaydi.
Bu secure URL ma’lumotining insecure networkda oshkor bo‘lishini kamaytiradi.
HTTPSdan HTTPSga cross-origin o‘tishda origin yuborilishi mumkin.
Analytics
Referer trafik manbasini taxmin qilishga yordam beradi:
- search engine;
- partner site;
- ichki link;
- social network;
- direct yoki unknown.
Header yo‘q bo‘lsa traffic avtomatik “direct” deb ko‘rinishi mumkin.
UTM va campaign parameterlari alohida tracking mexanizmi.
Security tekshiruvi
Server Referer yoki Origin orqali state-changing request qayerdan kelganini tekshirishi mumkin.
Bu CSRF himoyasining qo‘shimcha qatlami.
Ammo header privacy sabab yo‘q bo‘lishi mumkin.
Asosiy himoya:
Hotlink himoyasi
Image yoki media server Referer asosida boshqa sayt embeddingini cheklashi mumkin.
Bu bandwidth abuse’ni kamaytirishi ehtimoli bor.
Lekin header spoof qilinishi yoki yo‘q bo‘lishi mumkin.
Strong authentication yoki signed URL talab qiladigan content uchun Referer yetarli emas.
HTML atributi
Link va elementlarda referrer policy belgilanadi:
<a href="https://external.example"
referrerpolicy="no-referrer">
Bu faqat ayni request uchun policy beradi.
Document-level header umumiy defaultni belgilashi mumkin.
rel="noreferrer"
Linkda:
rel="noreferrer"
ishlatilsa destinationga Referer yuborilmaydi.
Browser behaviorida noopenerga yaqin qo‘shimcha ta’sir bo‘lishi mumkin.
Tashqi tab ochishda opener xavfi ham alohida hisobga olinadi.
Proxy va CDN
Reverse proxy original Referer’ni backendga uzatishi yoki policy bo‘yicha olib tashlashi mumkin.
Log pipeline sensitive queryni redaction qilishi kerak.
Third-party analyticsga to‘liq URL yuborilishi privacy talablariga ta’sir qiladi.
Spoofing
Non-browser HTTP client Referer headerini o‘zi yozishi mumkin.
Shu sababli u cryptographic identity proof emas.
Server uni signal sifatida ishlatadi, ammo authorizationni faqat shu qiymat bilan bermaydi.
Imlo va API
JavaScript document referrer qiymatini:
document.referrer
orqali olishi mumkin.
Bu joriy documentga olib kelgan page URLiga oid qiymat.
History navigatsiya va policy sabab bo‘sh bo‘lishi mumkin.
Redirect zanjiri
Request redirect orqali boshqa manzilga o‘tsa keyingi Referer qiymati browser policy va redirect targetga bog‘liq. Oraliq URLdagi sensitive parameter tashqi targetga chiqishi ehtimoli bor. Har redirect bosqichida referrer policy qo‘llanishi va final destinationga qancha detail berilishi tekshiriladi.
Resource requestlari
Referer faqat link navigatsiyasida emas, image, stylesheet, script va Fetch requestlarida ham yuborilishi mumkin. Third-party asset provider qaysi sahifadan request kelganini ko‘rishi ehtimoli bor. Sensitive route nomlari va query parameterlar shu sababli URL dizaynida ehtiyotkor tanlanadi.
Log retention
Referer server logida saqlansa u browsing path va query ma’lumotini o‘z ichiga olishi mumkin. Retention, access va redaction privacy siyosatiga mos bo‘ladi.
Bog‘liq tushunchalar
HTTP Referer, Referrer-Policy, Origin, HTTP header, Privacy, CSRF, Analytics, Same-Origin Policy, URL, noreferrer