Cara Mencegah Hotlink Gambar yang Menghabiskan Bandwidth
Cara mengenali dan memblokir hotlink gambar lewat cPanel, .htaccess, Nginx, atau Cloudflare tanpa memblokir mesin pencari dan pengunjung sendiri.
Jawaban singkat
Hotlink terjadi saat situs lain menampilkan gambar langsung dari servermu sehingga bandwidth kamu yang terpakai. Cegah dengan memeriksa header Referer lewat menu Hotlink Protection di cPanel, aturan .htaccess, valid_referers di Nginx, atau fitur Hotlink Protection di Cloudflare.
Daftar isi
Cara paling umum mencegah hotlink adalah menolak permintaan gambar yang datang dari halaman situs lain, dengan memeriksa header Referer di web server, panel hosting, atau CDN.
Kenapa ini penting? Hotlink terjadi saat situs lain memasang gambar dengan alamat langsung ke servermu, misalnya <img src="https://tokomu.com/foto-produk.jpg">. Setiap kali halaman mereka dibuka, gambar diunduh dari servermu. Mereka mendapat tampilan, kamu yang menanggung bandwidth dan beban server. Kalau gambar itu ikut viral di forum atau situs agregator, kuota trafik hosting bisa habis lebih cepat dari perkiraan.
Bagaimana tahu gambar kamu sedang di-hotlink?
Lihat log akses web server. Setiap baris log dalam format umum (combined) memuat alamat yang diminta dan halaman asal (Referer). Di cPanel, log mentah biasanya bisa diunduh dari menu Raw Access. Kalau punya akses SSH, perintah berikut menghitung halaman asal yang paling sering meminta gambar:
awk '$7 ~ /\.(jpe?g|png|gif|webp)$/ {print $11}' access.log | sort | uniq -c | sort -rn | head -20
Kalau di daftar teratas muncul domain yang bukan milikmu, berarti ada hotlink. Laporan trafik di panel hosting atau dashboard CDN juga sering menampilkan referer teratas. Lonjakan pemakaian bandwidth tanpa kenaikan jumlah pengunjung adalah tanda lain yang patut dicurigai. Soal bagaimana bandwidth dihitung di paket hosting, baca bandwidth unlimited di hosting.
Pilih cara yang sesuai dengan servermu
| Cara | Butuh akses | Kelebihan | Hal yang perlu diperhatikan |
|---|---|---|---|
| Menu Hotlink Protection di cPanel | Panel hosting | Cukup isi daftar domain yang diizinkan | Hasilnya ditulis ke .htaccess, cek bila ada aturan lain |
| Aturan .htaccess (Apache, LiteSpeed) | File Manager atau FTP | Bisa diatur detail per jenis file | Salah tulis bisa membuat gambar sendiri ikut terblokir |
valid_referers di Nginx | Akses konfigurasi server | Ringan dan bawaan Nginx | Perlu reload Nginx setelah diubah |
| Hotlink Protection Cloudflare | Domain memakai proxy Cloudflare | Diblokir sebelum sampai ke server | Hanya untuk ekstensi tertentu, cek daftarnya |
Lewat cPanel
Buka menu Hotlink Protection, aktifkan, lalu pastikan daftar URL yang diizinkan berisi semua alamat milikmu: dengan dan tanpa www, versi https, serta subdomain yang menampilkan gambar. Isi jenis file yang dilindungi, misalnya jpg,jpeg,png,gif,webp. Biarkan opsi untuk mengizinkan akses langsung (tanpa referer) tetap aktif.
Lewat .htaccess
Untuk Apache atau LiteSpeed, tambahkan aturan ini di .htaccess folder utama website. Pola ini mengikuti contoh resmi dokumentasi Apache tentang pencegahan hotlink gambar:
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^https?://([a-z0-9-]+\.)?domainmu\.com/ [NC]
RewriteRule \.(jpe?g|png|gif|webp|avif)$ - [F,NC]
Baris kedua mengizinkan permintaan tanpa referer. Baris ketiga mengizinkan domainmu sendiri beserta subdomainnya. Sisanya mendapat respons 403 Forbidden. Kalau .htaccess sudah berisi aturan lain, misalnya redirect HTTPS, letakkan aturan ini setelahnya dan cukup satu baris RewriteEngine On.
Lewat Nginx
Di blok server, tambahkan:
location ~* \.(jpe?g|png|gif|webp|avif)$ {
valid_referers none blocked server_names domainmu.com *.domainmu.com;
if ($invalid_referer) {
return 403;
}
}
Parameter none mengizinkan permintaan tanpa Referer, blocked mengizinkan Referer yang dihapus oleh proxy atau firewall, dan server_names mengizinkan nama yang tercantum di server_name. Uji dengan nginx -t, lalu reload. Kalau blok location untuk gambar sudah ada (misalnya untuk cache), gabungkan isinya ke blok yang sama.
Lewat Cloudflare
Kalau domain sudah memakai proxy Cloudflare, aktifkan Hotlink Protection di bagian Scrape Shield. Menurut dokumentasi Cloudflare, fitur ini memblokir permintaan dengan Referer yang bukan domainmu dan tidak kosong, untuk file gif, ico, jpg, jpeg, dan png. Gambar di folder bernama hotlink-ok dikecualikan. Perhatikan bahwa format seperti WebP tidak ada di daftar itu, jadi tambahkan aturan sendiri bila banyak gambarmu berformat WebP. Cara kerja proxy Cloudflare dibahas di proxy oranye Cloudflare.
Jangan sampai memblokir yang seharusnya boleh
Proteksi hotlink yang terlalu ketat bisa merugikan dirimu sendiri. Beberapa hal yang perlu dipastikan:
- Izinkan referer kosong. Banyak browser, aplikasi, dan pengaturan privasi tidak mengirim Referer. Memblokirnya membuat sebagian pengunjung asli tidak bisa melihat gambar.
- Pikirkan mesin pencari dan media sosial. Pratinjau tautan di aplikasi chat dan media sosial, serta tampilan gambar di hasil pencarian, bisa memuat gambar dari servermu. Jika ingin tetap tampil di sana, tambahkan domain mereka ke daftar yang diizinkan, lalu uji pratinjau tautan setelah aturan aktif.
- Masukkan semua domain dan CDN milikmu. Termasuk subdomain toko, blog, dan domain lama yang di-redirect.
- Jangan lindungi file yang memang untuk dibagikan, seperti logo untuk mitra atau gambar untuk newsletter. Gambar di email dibuka dari aplikasi email yang sering tidak mengirim Referer, tapi webmail tertentu bisa mengirim Referer domain mereka.
Setelah aturan aktif, uji dari terminal:
curl -I -e "https://situs-lain.com/" https://domainmu.com/gambar.jpg
curl -I -e "https://domainmu.com/" https://domainmu.com/gambar.jpg
Perintah pertama seharusnya mendapat 403, perintah kedua 200.
Apakah ada cara lain selain memblokir?
Ada. Sebagian pemilik website memilih mengganti gambar hotlink dengan gambar kecil berisi tulisan nama situs, alih-alih respons 403. Dengan aturan rewrite, permintaan dari luar diarahkan ke gambar pengganti itu. Pastikan gambar pengganti sendiri tidak ikut terkena aturan, agar tidak terjadi perulangan.
Pilihan lain adalah memindahkan gambar ke CDN. CDN tidak menghentikan hotlink, tapi bebannya pindah dari server utama ke jaringan CDN. Penjelasannya ada di apa itu CDN. Untuk gambar yang sering dicuri dan dipasang ulang, watermark tetap menjadi cara paling sederhana agar sumbernya terlihat.
Pertanyaan yang sering diajukan
Apakah proteksi hotlink berpengaruh ke SEO?
Halaman websitemu tidak terpengaruh, karena yang diblokir hanya permintaan gambar dari situs lain. Yang perlu dijaga adalah agar mesin pencari tetap bisa mengambil gambar, jadi jangan blokir permintaan tanpa referer dan uji tampilan di alat inspeksi URL mesin pencari.
Kenapa gambar di websiteku sendiri ikut hilang setelah proteksi aktif?
Biasanya karena salah satu alamat milikmu belum masuk daftar, misalnya versi www, versi https, atau subdomain. Periksa log untuk melihat Referer apa yang ditolak.
Apakah hotlink bisa dicegah sepenuhnya?
Tidak sepenuhnya, karena header Referer bisa dipalsukan oleh pihak yang sengaja. Tapi untuk kasus umum, yaitu situs lain yang menampilkan gambarmu di halaman mereka, pemeriksaan Referer sudah sangat efektif.


