هاتلینک چیست و چه هزینهای دارد
هر تصویر سایت شما یک URL دارد و هیچ چیز در HTML مانع نمیشود که سایت دیگری همان URL را در تگ img خودش بگذارد. وقتی این کار را میکند، هر بازدیدکنندهی صفحهی او فایل را از زیرساخت شما دانلود میکند: تجربهی محتوایی برای آنها، پهنای باند و صورتحساب CDN برای شما. همین قاعده برای PDFها، فونتها و فایلهای ویدیویی هم صادق است — هر چیزی که آدرسپذیر باشد.
آنچه این پدیده را موذی میکند، الگوی هزینهاش است. یک embed هزینهی محسوسی ندارد؛ اما یک پست پربازدید در فروم، یک صفحهی وایرال در سایتهای تجمیعگر یا یک سایت اسکرپرساخته که صدها تصویر شما را جاسازی کرده، خودش را اعلام نمیکند — فقط بهشکل ترافیکی ظاهر میشود که با صفحات خودتان جور درنمیآید. اگر آمار شما درخواستهای رسانهای قابلتوجهی با referrerهای خارجی نشان میدهد، دارید سایت شخص دیگری را تأمین مالی میکنید.
محافظت مبتنی بر Referer چگونه کار میکند
مرورگرها به زیر-درخواستها یک هدر Referer الصاق میکنند: وقتی صفحهای تصویری را بارگذاری میکند، درخواست آدرس همان صفحه را با خود حمل میکند. محافظت هاتلینک این هدر را در لبه (edge) میخواند و یک سیاست ساده اعمال میکند — اگر صفحهی درخواستکننده به دامنههای خودتان (یا شرکایی که مجاز کردهاید) تعلق دارد، سرو کن؛ اگر به جای دیگری تعلق دارد، رد کن.
این ردکردن در لبه اتفاق میافتد، پیش از آنکه origin شما چیزی ببیند، بنابراین پهنای باندِ ربودهشده فوراً قطع میشود. بعضی سایتها بهجای بلاک صریح، یک placeholder کوچک «تصویر میزبانیشده توسط…» سرو میکنند که سرقت را به تبلیغ رایگان تبدیل میکند — ترفند قشنگی است، اما ردکردنِ ساده استاندارد و پیشفرضِ سادهتر است.
محدودیتهای واقعی: این سازوکار از چه چیزی محافظت نمیکند
Referer را کلاینت تأمین میکند. یک اسکریپت میتواند آن را جعل کند، یک افزونهی حریم خصوصی میتواند حذفش کند، و بعضی بسترهای کاملاً مشروع اصلاً آن را نمیفرستند. پس دربارهی چیستی محافظت هاتلینک دقیق باشید: یک کنترل هزینه است که رایجترین حالت — embed کردنِ سرسری توسط سایتهای دیگر — را متوقف میکند، نه یک سازوکار کنترل دسترسی.
دو نتیجه از این حرف درمیآید. اول، تکلیف refererهای خالی را مشخص کنید: اگر بلاکشان کنید، بازدیدکنندگان پشت ابزارهای سختگیر حریم خصوصی، بازکردن مستقیم لینک و بعضی فیدخوانها را میشکنید؛ اگر مجازشان کنید، یک اسکرپر مصمم میتواند با نفرستادن Referer از این شکاف رد شود. بیشتر سایتها حالت خالی را مجاز میکنند و این شکاف را میپذیرند. دوم، هر چیزی که باید واقعاً خصوصی بماند — دانلودهای پولی، اسناد کاربران — به احراز هویت واقعی یا URLهای امضاشدهی منقضیشونده نیاز دارد؛ که قابلیت دیگری است و مسئلهی دیگری را حل میکند.
فعالسازی بدون شکستن استفادههای مشروع
حالت شکست محافظت هاتلینک، بلاککردن بیش از حد است: تصاویر خبرنامهتان در کلاینتهای ایمیل، صفحاتتان در اپهای «بعداً بخوان»، سایت شریکی که واقعاً میخواهید شما را embed کند. پس دامنهاش را آگاهانه تعیین کنید.
در cdn.com.tr این کنترل روی خودِ قانون تحویل قرار دارد: یک whitelist یا blacklist هاتلینک بهازای هر قانون، که در پنل کنار تنظیمات کش و امنیت همان قانون مدیریت میشود. همین جایگذاری اصل ماجراست — آن را روی قانونی که مسیرهای رسانهایتان را پوشش میدهد اعمال کنید، دامنههای خودتان را فهرست کنید (از جمله www و هر سابدامینی که بهطور مشروع embed میکند)، شرکا را در صورت نیاز اضافه کنید، و به قانون HTMLتان دست نزنید. سپس پیش از آنکه کار را تمامشده بدانید، هر سه حالت را تست کنید: صفحهی خودتان همچنان تصاویرش را رندر میکند، referer خارجی رد میشود، و بازکردن مستقیم در تب جدید همان رفتاری را دارد که برای refererهای خالی انتخاب کردهاید.
هر سه حالت را با curl بررسی کنید
# your own page as referer — must serve
curl -s -o /dev/null -w '%{http_code}\n' -e 'https://www.example.com/page' https://cdn.example.com/img/product.jpg
# foreign referer — must be refused
curl -s -o /dev/null -w '%{http_code}\n' -e 'https://other-site.com/thread' https://cdn.example.com/img/product.jpg
# no referer — whichever you chose, verify it is deliberate
curl -s -o /dev/null -w '%{http_code}\n' https://cdn.example.com/img/product.jpg
پرسشهای پرتکرار
آیا محافظت هاتلینک Google Images را میشکند؟
میتواند، اگر refererهای خالی و موتورهای جستجو را بلاک کنید — و حضور در جستجوی تصاویر معمولاً ترافیکی است که میخواهید. refererهای موتورهای جستجو (و معمولاً حالت خالی) را مجاز کنید، مگر دلیل مشخصی برای خلافش داشته باشید.
آیا جلوی دانلود و آپلود دوبارهی تصاویرم را میگیرد؟
نه. محافظت هاتلینک مانع میشود زیرساختِ شما به مخاطبان آنها سرویس بدهد؛ جلوی کپیکردن را نمیگیرد. محافظت در برابر کپی یک مسئلهی حقوقی و واترمارک است، نه مسئلهی پهنای باند.
همهچیز را محافظت کنم یا فقط رسانهها را؟
فقط رسانهها را، از طریق قانونی که آن مسیرها را پوشش میدهد. محافظت از HTML بیمعناست (صفحات همان چیزیاند که میخواهید بازدید شوند)، و دامنهبندی بهازای هر قانون دقیقاً همان چیزی است که نمیگذارد این کنترل مرور عادی را بشکند.
تکلیف فایلهای پولی یا خصوصی چیست؟
این قابلیت برای آنها نیست. بررسی Referer فقط embed کردنِ سرسری را دفع میکند؛ برای محتوایی که ارزش واقعی دارد از احراز هویت یا URLهای امضاشدهی منقضیشونده استفاده کنید تا صرفِ داشتن لینک کافی نباشد.