روش‌های جلوگیری از hotlinking در وردپرس

زمان حدودی مطالعه: 5 دقیقه

افزایش تعداد سایت‌ها باعث شده است که سرقت آثار نیز افزایش یابد.یکی از رایج‌ترین راه‌ها hotlinking است که جلوگیری از hotlinking در وردپرس را توضیح می‌دهیم.

هات لینکینگ تصاویر (Image Hotlinking) چیست؟

منظور از هات لینکینگ این است که از url تصویر یک سایت، در سایت دیگری استفاده شود. با وجود اینکه تصویر در سایت دوم نمایش داده می‌شود اما درخواست به سرور سایت اول فرستاده می‌شود. در نتیجه پهنای باند سایت صاحب تصویر استفاده می‌شود و به نوعی سرقت پهنای باند نیز اتفاق می‌افتد.

این عمل غیر قانونی است و برای سایتی که تصویر را در سرور خود دارد هزینه زیادی خواهد داشت. همچنین عملکرد آن سایت را نیز کاهش می‌دهد زیرا حجم زیادی درخواست برای نمایش آن تصویر به سرور ارسال می‌شود و در نتیجه پهنای باند سایت اشغال می‌شود. گاهی دلیل این کاهش عملکرد سایت قابل تشخیص نیست و صاحب سایت ممکن است متوجه هات لینکینگ تصاویر سایت خود نشود. در ادامه این مقاله به بررسی این موضوع می‌پردازیم که چطور متوجه دزدیده شدن تصاویر سایت خود شویم؟

چطور hotlinking را در وردپرس غیرفعال کنیم؟
همانطور که می‌دانید، وردپرس پرطرفدارترین سیستم مدیریت محتوا است. بسیاری از سایت‌ها به دلیل انعطاف بالای آن و پلاگین‌های متعددی که دارد، وردپرس را به عنوان سیستم مدیریت محتوا انتخاب می‌کنند.

در این قسمت روش‌های جلوگیری از hotlinking در وردپرس را به شما توضیح خواهیم داد.

ویرایش فایل .htaccess
اولین روش برای جلوگیری از hotlinking در وردپرس، ویرایش فایل .htaccess است. برای ویرایش این فایل لازم است به سایت خود از طریق FTP دسترسی داشته باشید. در نتیجه پیش ازهر چیزی FileZilla را دانلود کنید تا بتوانید از طریق آن به FTP دسترسی پیدا کنید.
پس از نصب وارد پوشه اصلی شوید و .htaccess را پیدا کنید. بر روی آن کلیک راست کنید و View/Edit را انتخاب کنید. فایل در ویرایشگر پیش‌فرض سیستم شما باز می‌شود و می‌توانید تغییرات موردنظر خود را اعمال کنید. فایل .htaccess دسترسی ها به فایل‌ها و پوشه‌های مختلف را به سرور اعلام می‌کند.

استفاده از پلاگین All In One WP Security & Firewall

روش دیگر برای جلوگیری از hotlinking در وردپرس، استفاده از پلاگین All In One WP Security & Firewall است. این پلاگین با بیش از ۸۰۰ هزار نصب فعال، یکی از بهترین ابزارها برای جلوگیری از hotlinking است. قوانین امنیتی و فایروال این پلاگین بر سه اساس ابتدایی، متوسط و پیشرفته دسته‌بندی شده‌اند.
این پلاگین با وردپرس کاملا سازگار است و سرعت سایت شما را کاهش نمی‌دهد. با استفاده از این پلاگین رایگان به راحتی می‌توانید از کپی شدن تصاویر خود توسط سایز سایت‌ها جلوگیری کنید.

این پلاگین به شما اجازه این را می‌دهد تا با استفاده از فایل .htaccess،‌ فایروال‌های محافظت کننده را به سایت خود اضافه کنید.

برای دانلود این پلاگین می‌توانید وارد سایت رسمی وردپرس شوید و یا از داشبورد وردپرس خود آن را نصب و راه‌انداری کنید.

استفاده از CDN

CDN مخفف عبارت Content Delivery Network است. بیشتر وبسایت‌ها از یک ارائه دهنده CDN برای سرعت بخشیدن به درخواست‌های ارسالی به سمت سرور استفاده می‌کنند تا تجربه کاربری بهتری برای بازدیدکنندگان خود ایجاد کنند.

یکی دیگر از روش‌هایی که می‌‌توانید برای جلوگیری از hotlinking در وردپرس استفاده کنید، CDN است. با استفاده از CDN، درخواست نمایش تصاویر سایت شما در یک سایت دیگر با استفاده ار hotlinking بلاک می‌شود و دیگران نمی‌توانند محتوای شما را با استفاده از پهنای باند شما در سایت خودشان قرار بدهند.

یکی از مزیت‌های استفاده از این روش، عدم نیاز به تغییر در نصب وردپرس است و به راحتی می‌توانید قوانین مورد نظر خود را با استفاده از نرم‌افزارهایی مانند KeyCDN مشخص کنید.

استفاده از ابزار cPanel Hotlinking prevention


اگر برای دامنه سایت خود از cPanel استفاده می‌کنید، می‌توانید از ابزار پیش‌فرض hotlink protection آن برای جلوگیری از hotlinking در وردپرس استفاده کنید. این روش یکی از آسان‌ترین راه‌ها برای جلوگیری از hotlinking است.

پیش از غیر فعال کردن hotlink ها حتما مطمئن شوید که بات‌ها و زیر دامنه‌هایی که لازم است برای نمایش تصاویر از url شما استفاده کنند، در لیست غیر فعال‌ها نباشند.

فعالسازی hotlink ptotection به صورتزیر است:

ابتدا enable را کلیک کنید. صفحه‌ای به شما نمایش داده می‌شود که لیستی از ارجاع‌های مجاز و غیرمجاز را نشان می‌دهد.
در این مرحله Go back را انتخاب کنید.
برای اینکه به سایت‌های مشخصی اجازه هاتلینک به سایت خود را بدهید، url آن‌ها را در منوی URLs to allow access وارد کنید.
برای بلاک کردن دسترسی به فایل‌های خاصی، آن فایل‌ها را به قسمت Block direct access for the following extensions اضافه کنید. به عنوان مثال برای بلاک کردن تمامی فایل‌ها با فرمت .jpg این عبارت را در قسمت مربوطه بنویسید. با بلاک کردن این فایل‌ها، سایت‌های دیگر قادر نیستند از url تصاویر شما در سایت خود استفاده کنند.
برای دادن دسترسی به فایل‌های خاص، همانند مورد قبلی آن فایل‌ها را این‌بار در ‌ Allow direct requests قرار دهید.
همچنین می‌توانید یک url خاصی را برای ریدایرکت کردن کاربران خود به آن لینک به جای لینک اصلی تصویر در نظر بگیرید.
در انتها submit را کلیک کنید تا تغییرات مورد نظرتان اعمال شود.
برای غیر فعالسازی hotlink protection نیز تنها لازم است بر روی disable کلیک کنید.

فعال‌ کردن Hotlink Protection در آپاچی


ر صورتی که از آپاچی برای سایت وردپرسی خود استفاده می‌کنید، برای جلوگیری از hotlinking در وردپرس لازم است کد زیر را به فایل .htaccess اضافه کنید. پیش‌تر در این مقاله در مورد .htaccess توضیح دادیم و نیاز به توضیح اضافه نیست.

/* Prevent image hotlinking in WordPress */
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourwebsite.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?google.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?facebook.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?twitter.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?other-websites-go-here.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ - [F]

این کد از دسترسی سایت‌هایی به غیر از سایت خودتان مانند گوگل، فیسبوک، توییتر و غیره به تصاویر شما جلوگیری می‌کند و سایت‌های دیگر نمی‌توانند از url تصاویر شما در سایت خود استفاده کنند و به عبارتی جلوگیری از hotlinking در وردپرس رخ می‌دهد.

اما آخرین خط، فرمت فایل‌هایی است که می‌خواهید این حفاظت بر روی آن‌ها اعمال شود. یعنی فایل‌های jpg، jpeg، png و gif قابل نمایش از طریق hotlink نیستند.

فعال‌ کردن Hotlink Protection در NGINX

اگر از NGINX برای سایت وردپرسی خود استفاده می‌کنید، با افزودن کد زیر به فایل config می‌توانید از hotlinking جلوگیری کنید:

location ~ .(gif|png|jpeg|jpg|svg)$ {
valid_referers none blocked ~.google. ~.bing. ~.yahoo. yourdomain.com *.yourdomain.com;
if ($invalid_referer) {
return 403;
}
}

پست‌های مرتبط