احسان امجدی
کارشناس امنیت اطلاعات و ارتباطات

HTTP Referer چیست؟ به زبان ساده

ریفرر ( Referrer ) در HTTP چیست؟ نکته‎ای که در رابطه با آن صحبت خواهد شد، هرچند که ظاهرا جزو دسته‌بندی برنامه نویسی و توسعه نرم افزار قرار دارد اما در بحث امنیت شبکه هم آنطور که مطلع هستید نکات مرتبط با این موضوع و همچنین زبان‏های برنامه نویسی غریبه نیستند و بخشی از مفاهیم امنیت را در بر می‎گیرند.

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران
سرفصل های این مطلب
  1. پنهان کردن referrer

از آنجایی که علاوه بر آشنایی با این مفهوم، دید امنیتی قضیه مد نظر است، در انجمن امنیت اطلاعات و ارتباطات آن را مطرح نمودیم.HTTP referrer (در اصل referrer است که بصورت اشتباه ولی عرفی referer نامیده میشود) یک HTTP Header field است که آدرس وب سایتی (مثل URL) را مشخص میکند که منبعی را که درخواست شده است، لینک داده است.

با بررسی referer، صفحه وب جدید میتواند در جایی(منبعی) که درخواست آن شده است، مشاهده شود. در اکثر حالات این بدان معنی است که هنگامی که کاربری بر روی یک هایپرلینک در مرورگر کلیک کرد، مرورگر درخواست را به سرور میزبان وب‎پیج ارسال میکند. درخواست شامل بخش referrer است که آخرین صفحه‎ای راکه کاربر توی آن بوده (روی آن کلیک کرده) است را نشان میدهد.

Referrer logging هم بخشی است که به وب‌سایت ها و وب سرورها این امکان را میدهد تا بخش هایی را که کاربر از آن ها دیدن کرده است را برای اهداف تبلیغاتی و یا آماری شناسایی کند.هنگامی که از یک صفحه وب بازدید می‌شود، referrer صفحه، در واقع URL صفحه وب قبلی است که از طریق آن بواسطه کلیک بر روی لینکی، به این صفحه رسیده‎اید.

بصورت کلی تر، referrer، URL جایی است که بشما اجازه ارسال این درخواست را داده است. Referrer برای یک عکس بطور مثال معمولا صفحه HTML ای است که عکس در آن نمایش داده می‎شود. بخش referrer بخشی دلخواه در یک درخواست HTTP است که از مرورگر به وب‌سرور ارسال می‎شود.

بسیاری از وب‎سایت ها برای ردیابی کاربرانشان، لاگ referrer را نگه میدارند. بسیاری از آنالیست‎های نرم افزاری در زمینه لاگ های وب میتوانند این اطلاعات را پردازش کنند. از آنجایی که اطلاعات referrer جزو حریم خصوصی کاربران محسوب می‎شود، بسیاری از مرورگرها این امکان را به کاربرانشان میدهند تا ارسال referrer را غیرفعال کنند.

برخی از نرم افزارهای پروکسی و فایروال هم خروج اطلاعات referrer را به جهت عدم ردیابی مکان وب سایت‎های غیر عمومی‎شان، فیلتر می‎کنند. این اقدام مشکلاتنی را هم باعث می‏شود: برخی از وب‎سرورها بخشی از از وب‎‌سایتشان را برای دسترسی آندسته از مرورگرهایی که اطلاعات صحیحی از referrer را ارسال نمی‏کنند، بلاک کرده‎اند. این کار به جهت جلوگیری از deep linking و یا استفاده غیرمجاز از عکس‎ها( سرقت پهنای باند) می‎باشد.

امروزه بسیاری از وبلاگ‏ها اقدام به انتشار اطلاعات referrer می‏کنند تا از طریق آن بتوانند با کاربران که به آن‎ها لینک زده‎اند، ارتباط برقرار نمایند. و در نهایت وجود سوء استفاده ها در این زمینه نیز منجر به افزایش و گسترش referrer های هرز(Spam) می‌شود.بسیاری از سایت‏های غیراخلاقی از اطلاعات referer برای امن کردن وب‎سایتشان استفاده می‏کنند.

از این رو فقط درخواست مرورگرهایی که از جانب تعدادی خاص از وب‌سایت‎ها (در وب‎سایت قبلی احراز هویت شده باشند) آمده باشد، مورد قبول واقع می‎شود. این کار باعث تسهیل در به اشتراک گذاری محصولات سایت‎هایی که در زمینه فروش با یکدیگر همکاری دارند، می‎شود. با تکیه بر مطلب گفته شده، referrer spoofing معمولا برای بدست آوردن دسترسی رایگان به این سایت‎های پرداخت است.

پنهان کردن referrer

اکثر وب‎سرورها لاگ کل ترافیکشان را نگهداری و HTTP referrer ارسالی توسط مرورگر را به ازای هر درخواست ضبط می‎کنند. این موضوع تهدیدات نقض حریم شخصی را افزایش می‎دهد. بدین منظور سیستم‎هایی برای جلوگیری از ارسال refererهای صحیح از طرف وب‎سرورها بوجود آمده‏اند. این سیستم‏ها بخش referrer را خالی می‏گذارند و یا آن را با اطلاعات نادرست پر می‏کنند.

عموما مجموعه‏ های امنیتی اینترنتی جای اطلاعات referrer را خالی می‏گذارند بنابراین سرورهای وب، اطلاعات نادرست URL راجایگزین آن میکنند که غالبا آدرس خودشان است. این موضوع مسئله referrer های هرز را افزایش می‏دهد. بسیاری از مرورگرها هنگامی که مجددا از طریق بخش Refresh فراخوانی می‎شوند، دیگر بخش referrer را ارسال نمی‏کنند.

البته این موضوع شامل مرورگر اپرا و بسیاری از مرورگرهای موبایل نمی‎شود.اگردرخواست وب از طرف یک منبع HTTPS به وب‎سایتی (غیر HTTPS) برسد، بخش referrer بطور خودکار ارسال نمی‎گردد. استاندارد HTML5 که در آینده خواهد آمد، ارزش rel = “noreferer” را به منظور ساخت Agent ای طرف کاربر برای عدم ارسال referrer، پشتیانی خواهد کرد.


احسان امجدی
احسان امجدی

کارشناس امنیت اطلاعات و ارتباطات

احسان امجدی ، مشاور امنیت اطلاعات و ارتباطات و تست نفوذ سنجی ، هکر کلاه سفید ، مدرس دوره های تخصصی امنیت اطلاعات و شبکه ، تخصص در حوزه های سرویس های مایکروسافت ، Routing و Switching ، مجازی سازی ، امنیت اطلاعات و تست نفوذ ، کشف جرائم رایانه ای و سیستم عامل لینوکس ، متخصص در حوزه SOC و ...

نظرات