All Products
Search
Document Center

Object Storage Service:Perlindungan hotlink

Last Updated:Jun 03, 2026

Jika hotlinking dari situs web lain meningkatkan biaya lalu lintas OSS Anda, konfigurasikan daftar putih atau blacklist Referer untuk membatasi akses.

Cara kerja

Saat browser meminta file OSS, header HTTP Referer mengidentifikasi halaman yang melakukan permintaan. OSS memvalidasi nilai Referer ini untuk memverifikasi asal permintaan.

Setelah Perlindungan hotlink dikonfigurasi, OSS mengevaluasi permintaan dalam urutan berikut:

  1. Pemeriksaan Referer kosong: OSS memeriksa apakah Referer kosong. Jika kosong, logika berikut berlaku:

    • Jika Anda mengizinkan permintaan dengan Referer kosong, permintaan tersebut diizinkan.

    • Jika Anda tidak mengizinkan permintaan dengan Referer kosong dan daftar putih kosong, permintaan tersebut diizinkan.

    • Jika Anda tidak mengizinkan permintaan dengan Referer kosong dan daftar putih tidak kosong, permintaan tersebut ditolak.

    Jika Referer tidak kosong, pemeriksaan dilanjutkan ke langkah berikutnya.

  2. Pemeriksaan blacklist: OSS memeriksa apakah Referer cocok dengan entri apa pun di blacklist. Kecocokan mengakibatkan penolakan segera — daftar putih tidak diperiksa. Jika tidak cocok, pemrosesan dilanjutkan.

  3. Pemeriksaan daftar putih: OSS memeriksa apakah Referer cocok dengan entri apa pun di daftar putih. Kecocokan mengizinkan permintaan; ketidakcocokan menolaknya.

Prosedur

  1. Buka daftar Buckets dan klik bucket target.

  2. Di panel navigasi kiri, pilih Content Security > Hotlink Protection. Aktifkan opsi Hotlink Protection dan konfigurasikan aturan Referer sesuai kebutuhan:

    • Referer Whitelist: Domain yang diizinkan mengakses sumber daya Anda. Masukkan satu per baris.

    • Referer Blacklist: Domain yang ditolak aksesnya. Masukkan satu per baris. Blacklist memiliki prioritas lebih tinggi daripada daftar putih.

    • Allow Empty Referer: Apakah akan mengizinkan permintaan tanpa header Referer, seperti akses langsung melalui browser.

    • Truncate QueryString: Apakah akan mengabaikan string kueri setelah ? dalam URL saat pencocokan. Aturan penguraian string kueri.

    Aturan Referer mendukung wildcard:

    Wildcard

    Description

    Example

    *

    Mencocokkan nol atau lebih karakter.

    *.example.com mencocokkan http://www.example.com dan https://help.example.com.

    ?

    Mencocokkan satu karakter.

    http://www.aliyun?.com mencocokkan http://www.aliyunc.com.

    Aturan Referer juga mendukung domain atau alamat IP dengan port, seperti http://www.example.com:8080 dan 10.10.10.10:8080.

    Catatan

    Pencocokan peka terhadap protokol. Aturan untuk http://www.aliyun.com tidak mencocokkan https://www.aliyun.com. Tambahkan entri untuk HTTP dan HTTPS.

  3. Klik Save untuk menerapkan pengaturan.

Kasus penggunaan

Izinkan akses hanya dari website tepercaya

Izinkan hanya situs web tertentu untuk mengakses sumber daya OSS Anda sekaligus mengizinkan akses langsung melalui browser.

Langkah 1: Dapatkan Referer

Sebelum mengonfigurasi aturan, identifikasi Referer dari permintaan ke sumber daya OSS Anda:

  • Gunakan log waktu nyata OSS: Buka daftar Buckets. Di halaman bucket target, pilih Logging > Real-time Log Query, lalu temukan bidang referer. Tanda hubung (-) menunjukkan permintaan dengan Referer kosong.

  • Gunakan developer tools browser: Tekan F12 untuk membuka developer tools browser. Di panel Network, periksa header Referer pada permintaan.

Langkah 2: Konfigurasikan aturan Referer

Parameter

Value

Description

Referer Whitelist

https://www.aliyun.com
http://www.aliyun.com
*.console.aliyun.com










Tambahkan domain tepercaya untuk HTTP dan HTTPS. Sertakan domain konsol agar fungsi manajemen tetap berfungsi.

Referer Blacklist

Leave empty

No sources to block.

Allow Empty Referer

Allow

Mengizinkan akses langsung melalui browser dan akses dari klien yang menghilangkan Referer.

Truncate QueryString

Allow

Mengabaikan string kueri URL untuk pencocokan fleksibel.

Langkah 3: Verifikasi konfigurasi

# Simulasikan permintaan dari Referer yang ada di daftar putih (diharapkan berhasil)
curl -e "http://www.aliyun.com" http://your-bucket-name.oss-cn-hangzhou.aliyuncs.com/demo.txt

# Simulasikan permintaan dari Referer yang tidak ada di daftar putih (diharapkan mengembalikan AccessDenied)
curl -e "http://www.example.com" http://your-bucket-name.oss-cn-hangzhou.aliyuncs.com/demo.txt

# Simulasikan permintaan dengan Referer kosong (diharapkan berhasil)
curl http://your-bucket-name.oss-cn-hangzhou.aliyuncs.com/demo.txt

Blokir website berbahaya

Izinkan akses dari sebagian besar sumber tetapi blokir situs web berbahaya tertentu menggunakan blacklist.

Langkah 1: Identifikasi Referer

Buka daftar Buckets. Di halaman bucket target, pilih Logging > Real-time Log Query. Filter catatan lalu lintas abnormal dan periksa bidang referer untuk mengidentifikasi domain berbahaya.

Langkah 2: Konfigurasikan aturan Referer

Parameter

Value

Description

Referer Whitelist

*

Mengizinkan akses dari semua sumber.

Referer Blacklist

*bad-site.example
http://malicious-site.example
https://malicious-site.example










Tambahkan domain berbahaya. Gunakan wildcard untuk memblokir seluruh domain dan subdomainnya.

Allow Empty Referer

Allow

Mengizinkan akses langsung dan klien sah berfungsi.

Truncate QueryString

Allow

Mengabaikan string kueri URL untuk pencocokan fleksibel.

Langkah 3: Verifikasi konfigurasi

# Simulasikan permintaan dari website normal (diharapkan berhasil)
curl -e "http://www.example.com" http://your-bucket-name.oss-cn-hangzhou.aliyuncs.com/demo.txt

# Simulasikan permintaan dari website yang diblokir (diharapkan mengembalikan AccessDenied)
curl -e "http://bad-site.example" http://your-bucket-name.oss-cn-hangzhou.aliyuncs.com/demo.txt

# Simulasikan permintaan dengan Referer kosong (diharapkan berhasil)
curl http://your-bucket-name.oss-cn-hangzhou.aliyuncs.com/demo.txt

Izinkan akses program mini WeChat

Program mini WeChat menggunakan format Referer tetap: https://servicewechat.com/{appid}/{version}/page-frame.html. Konfigurasikan aturan Anda agar sesuai dengan format ini.

Langkah 1: Identifikasi format Referer

Format Referer untuk program mini WeChat bersifat tetap dan dapat diprediksi, sehingga Anda dapat mengonfigurasinya langsung dengan menggunakan wildcard. Untuk mengonfirmasi format pasti, buka daftar Buckets dan periksa bidang referer di bagian Logging > Real-time Log Query bucket target Anda.

Langkah 2: Konfigurasikan aturan Referer

Parameter

Value

Description

Referer Whitelist

*servicewechat.com
*.console.aliyun.com



Wildcard mencakup semua AppID dan versi program mini. Sertakan domain konsol agar fungsi manajemen tetap berfungsi.

Referer Blacklist

Leave empty

No sources to block.

Allow Empty Referer

Allow

Beberapa program mini menghilangkan Referer. Mengizinkan Referer kosong memastikan kompatibilitas.

Truncate QueryString

Allow

Mengabaikan string kueri URL untuk pencocokan fleksibel.

Langkah 3: Verifikasi konfigurasi

# Simulasikan permintaan dari program mini WeChat (diharapkan berhasil)
curl -e "https://servicewechat.com/wx1234567890abcdef/1/page-frame.html" http://your-bucket-name.oss-cn-hangzhou.aliyuncs.com/demo.txt

# Simulasikan permintaan dari sumber lain (diharapkan mengembalikan AccessDenied)
curl -e "http://www.example.com" http://your-bucket-name.oss-cn-hangzhou.aliyuncs.com/demo.txt

# Simulasikan permintaan dengan Referer kosong (diharapkan berhasil)
curl http://your-bucket-name.oss-cn-hangzhou.aliyuncs.com/demo.txt

Izinkan akses konsol OSS

Setelah mengaktifkan Perlindungan hotlink, tambahkan domain konsol OSS ke daftar putih agar fungsi manajemen tetap berfungsi.

Langkah 1: Konfigurasikan aturan

Parameter

Value

Description

Referer Whitelist

*.console.aliyun.com

Wildcard mencakup semua subdomain konsol OSS, memastikan pratinjau berfungsi di semua wilayah.

Referer Blacklist

Leave empty

No sources to block.

Allow Empty Referer

Allow

Mengizinkan akses langsung dan pratinjau konsol berfungsi.

Truncate QueryString

Allow

Mengabaikan string kueri URL untuk pencocokan fleksibel.

Langkah 2: Verifikasi konfigurasi

# Simulasikan akses dari konsol (diharapkan berhasil)
curl -e "https://oss.console.alibabacloud.com" http://your-bucket-name.oss-cn-hangzhou.aliyuncs.com/demo.txt

Anda juga dapat memverifikasi dengan mempratinjau dan mengunduh file dari konsol OSS.

Blokir akses langsung melalui URL

Nonaktifkan Referer kosong agar semua permintaan harus berasal dari situs web tertentu, mencegah akses langsung melalui URL.

Penting

Ini memblokir semua akses langsung, termasuk bookmark dan tautan email. Beberapa plugin browser, manajer unduhan, dan pemutar video mungkin tidak berfungsi karena sering kali menghilangkan Referer.

Langkah 1: Tentukan Referer

Identifikasi semua kombinasi domain dan protokol untuk situs web Anda guna mencakup semua skenario akses sah.

Langkah 2: Konfigurasikan aturan

Parameter

Value

Description

Referer Whitelist

https://www.example.com
http://www.example.com
*.console.aliyun.com










Domain website Anda. Tambahkan semua kombinasi domain dan protokol yang diperlukan. Sertakan domain konsol agar fungsi management tetap berjalan.

Referer Blacklist

Biarkan kosong

Tidak ada sumber yang perlu diblokir.

Allow Empty Referer

No

Memblokir akses langsung dari address bar browser.

Truncate QueryString

Allow

Mengabaikan query string URL untuk pencocokan yang lebih fleksibel.

Langkah 3: Verifikasi konfigurasi

# Simulasikan permintaan dari website (diharapkan berhasil)
curl -e "http://www.example.com" http://your-bucket-name.oss-cn-hangzhou.aliyuncs.com/demo.txt

# Simulasikan akses langsung (diharapkan mengembalikan AccessDenied)
curl http://your-bucket-name.oss-cn-hangzhou.aliyuncs.com/demo.txt

# Simulasikan permintaan dari website lain (diharapkan mengembalikan AccessDenied)
curl -e "http://other.example" http://your-bucket-name.oss-cn-hangzhou.aliyuncs.com/demo.txt

Aturan penguraian string kueri

Jika Anda menonaktifkan opsi Truncate query string, OSS mengurai string kueri sebagai berikut:

Rule

Description

String kueri tidak di-decode URL.

Untuk URL permintaan http://www.example.com/?job_id=task$01, aturan daftar putih atau blacklist yang diatur ke http://www.example.com/?job_id=task%2401 tidak akan cocok.

Parameter tidak peka huruf besar/kecil.

Untuk URL permintaan http://www.example.com/?ACTION=NOP, aturan daftar putih atau blacklist yang diatur ke http://www.example.com/?action=nop akan cocok.

Urutan parameter penting.

Untuk URL permintaan http://example.com/?b=c&a=b, aturan daftar putih atau blacklist yang diatur ke http://example.com/?a=b&b=c tidak akan cocok.

Pertimbangan produksi

  • Risiko bypass cache CDN: Permintaan hotlinking mungkin mengenai node edge CDN dan dilayani dari cache, melewati Perlindungan hotlink OSS. Untuk mencegah hal ini, juga konfigurasikan aturan Perlindungan hotlink Referer yang sama pada CDN Anda.

  • Dampak Referrer-Policy browser: Browser mendukung header Referrer-Policy, yang mengontrol seberapa banyak informasi Referer yang dikirim dalam permintaan lintas asal. Kebijakan seperti no-referrer menyebabkan browser menghilangkan Referer, dan OSS memperlakukan ini sebagai permintaan dengan Referer kosong. Pertimbangkan hal ini saat mengonfigurasi aturan.

  • Kompatibilitas pemutaran video: Tag video native browser mengirim permintaan awal dengan Referer dan permintaan data media berikutnya dengan Referer kosong. Agar pemutaran video berfungsi, Anda harus mengizinkan akses untuk permintaan dengan Referer kosong.

Kuota dan batasan

  • akses anonim atau signed URL. Panggilan API yang ditandatangani dengan AccessKey (permintaan yang menyertakan header Authorization) tidak dibatasi oleh aturan Perlindungan hotlink.

  • Batas ukuran daftar: Gabungan daftar putih dan blacklist Referer tidak boleh melebihi 20 KB.

  • Lingkup: Perlindungan hotlink berlaku di tingkat bucket. Aturan per objek atau per direktori tidak didukung.

FAQ

Mengapa Perlindungan hotlink tidak berfungsi?

Periksa hal berikut secara berurutan:

  1. Pemeriksaan lingkungan browser: Lingkungan tertentu, seperti program mini WeChat atau iframe, mungkin memodifikasi Referer. Gunakan log waktu nyata OSS atau developer tools browser untuk mengidentifikasi Referer aktual, lalu sesuaikan aturan Anda.

  2. Format Referer: Pastikan entri Referer Anda menyertakan awalan protokol (http:// atau https://). Menghilangkannya menyebabkan aturan gagal.

  3. Cache Bypass CDN: Jika CDN Anda tidak memiliki perlindungan hotlink, permintaan dapat melewati validasi OSS. Konfigurasikan aturan perlindungan hotlink yang sesuai di CDN Anda.

Menangani error akses ditolak di program mini WeChat

Program mini WeChat menggunakan Referer tetap yang dimulai dengan https://servicewechat.com/. Tambahkan *servicewechat.com ke daftar putih Anda untuk mengizinkan akses semua program mini.

Menangani error akses ditolak untuk akses langsung

Akses langsung melalui browser mengirim Referer kosong. Jika Referer kosong tidak diizinkan, akses ditolak. Untuk mengizinkan akses langsung, ubah opsi Allow Empty Referer dalam pengaturan Perlindungan hotlink Anda menjadi Allow.

Menangani error InlineDataTooLarge

Gabungan daftar putih dan blacklist Referer melebihi batas 20 KB. Gunakan wildcard untuk menggabungkan aturan atau hapus entri yang tidak perlu.