Anda dapat mengonfigurasi daftar hitam dan daftar putih Referer untuk Bucket OSS guna mencegah hotlinking tidak sah pada sumber daya Anda serta mengurangi biaya lalu lintas yang tidak perlu.
Cara kerjanya
Ketika browser meminta file dari OSS, header Referer pada permintaan HTTP berisi URL halaman yang memulai permintaan tersebut. OSS memeriksa nilai Referer berdasarkan aturan yang telah ditentukan sebelumnya untuk menentukan apakah akses diizinkan atau ditolak.
Setelah mengaktifkan Perlindungan hotlink, OSS mengevaluasi permintaan akses dalam urutan berikut:
-
Pemeriksaan Referer Kosong
-
OSS pertama-tama memeriksa apakah header Referer dari permintaan kosong.
-
Jika Kosong:
-
Jika Anda mengizinkan permintaan dengan Referer kosong, OSS akan mengizinkan permintaan tersebut.
-
Jika Anda tidak mengizinkan permintaan dengan Referer kosong, OSS hanya akan mengizinkan permintaan jika daftar putih juga kosong. Jika tidak, OSS akan menolak permintaan tersebut.
-
-
-
Pemeriksaan Blacklist
-
Untuk permintaan dengan Referer tidak kosong, OSS memeriksa blacklist.
-
Jika Referer cocok dengan entri di blacklist, OSS akan langsung menolak permintaan dan melewati pemeriksaan daftar putih.
-
-
Whitelist Check
-
Jika Referer dari permintaan tidak kosong dan tidak cocok dengan blacklist, OSS kemudian memeriksa daftar putih.
-
Jika Referer dari permintaan cocok dengan entri di daftar putih, OSS akan mengizinkan permintaan tersebut.
-
Jika Referer tidak cocok dengan entri apa pun di daftar putih, OSS akan menolak permintaan tersebut.
-
Izinkan akses hanya dari situs web tepercaya
Anda dapat mengizinkan hanya situs web tepercaya untuk mengakses sumber daya OSS Anda. Konfigurasi ini mendukung akses langsung dari browser dan memastikan fungsi Konsol OSS beroperasi dengan benar.
Langkah 1: Dapatkan Referer permintaan
Untuk memastikan aturan efektif, identifikasi terlebih dahulu Referer yang tepat dari permintaan yang mengakses sumber daya OSS Anda.
Gunakan Kueri Log Waktu Nyata
Masuk ke Konsol OSS.
Di panel navigasi sebelah kiri, klik Buckets. Di halaman Buckets, klik nama bucket target.
Di panel navigasi sebelah kiri, pilih Manajemen Log > Kueri Waktu Nyata.
Temukan bidang
refererdalam catatan log. Jika bidang ini menunjukkan tanda hubung (-), permintaan memiliki Referer kosong.
Gunakan Alat Pengembang Browser
Gunakan browser modern seperti Chrome untuk mengunjungi halaman web yang mereferensikan sumber daya OSS Anda.
Tekan F12 untuk membuka Alat Pengembang dan beralih ke panel Jaringan.
Segarkan halaman dan temukan permintaan untuk sumber daya OSS.
Pilih permintaan dan temukan nilai bidang
Refererdi bagian Header.
Langkah 2: Konfigurasikan aturan perlindungan hotlink
Masuk ke Konsol OSS.
Di panel navigasi sebelah kiri, klik Buckets. Di halaman Buckets, klik nama bucket target.
Di panel navigasi sebelah kiri, pilih Keamanan Data > Perlindungan Hotlink.
Aktifkan sakelar Perlindungan Hotlink dan konfigurasikan parameter berikut:
Daftar Putih Referer: Masukkan domain yang ingin diizinkan, satu per baris. Karena pengguna mungkin mengakses situs web Anda menggunakan HTTP dan HTTPS, tambahkan entri untuk kedua protokol tersebut. Tambahkan juga domain Konsol OSS untuk memastikan fungsi penuh konsol.
https://www.aliyun.com http://www.aliyun.com *.console.aliyun.comAturan Referer mendukung karakter wildcard asterisk (
*) dan tanda tanya (?). Sebagai contoh,*.aliyun.comcocok dengan semua subdomain darialiyun.com.Blacklist Referer: Biarkan bidang ini kosong. Saat daftar putih dan blacklist dikonfigurasikan, blacklist memiliki prioritas lebih tinggi.
Referer Kosong: Pilih Izinkan. Pengaturan ini memungkinkan pengguna mengakses file dengan memasukkan URL langsung ke bilah alamat browser mereka dan mengaktifkan akses dari klien yang tidak mengirim header Referer, seperti aplikasi desktop.
Potong QueryString: Pilih Izinkan (default). Untuk fleksibilitas lebih besar, OSS mengabaikan bagian URL setelah tanda tanya (
?)—query string—saat mencocokkan Referer.
Klik Simpan.
Langkah 3: Verifikasi konfigurasi
Gunakan perintah curl untuk mensimulasikan permintaan dari sumber berbeda guna memverifikasi bahwa konfigurasi perlindungan hotlink bekerja sesuai harapan.
Simulasikan Akses dari Referer yang Masuk Daftar Putih (Diharapkan Berhasil)
curl -e "http://www.aliyun.com" http://your-bucket-name.oss-cn-hangzhou.aliyuncs.com/demo.txtHasil yang Diharapkan: Konten file
demo.txtdikembalikan.Simulasikan Akses dari Referer yang Tidak Masuk Daftar Putih (Diharapkan Ditolak)
curl -e "http://www.example.com" http://your-bucket-name.oss-cn-hangzhou.aliyuncs.com/demo.txtHasil yang Diharapkan: Perintah mengembalikan pesan kesalahan yang berisi
AccessDenieddanYou are denied by bucket referer policy.Simulasikan Akses dengan Referer Kosong (Diharapkan Berhasil)
curl http://your-bucket-name.oss-cn-hangzhou.aliyuncs.com/demo.txtHasil yang Diharapkan: Konten file dikembalikan karena konfigurasi mengizinkan Referer kosong.
Blokir situs web jahat tertentu dari hotlinking
Anda dapat mengizinkan akses dari sebagian besar sumber sambil secara eksplisit memblokir situs web jahat tertentu. Untuk memblokir sumber jahat secara tepat sambil tetap membuka akses untuk semua sumber sah lainnya, gunakan blacklist.
Langkah 1: Dapatkan Referer situs web jahat
Sebelum mengonfigurasi aturan, identifikasi nilai Referer situs web jahat dengan akurat. Anda dapat menganalisis lalu lintas tidak biasa menggunakan log waktu nyata untuk mengidentifikasi sumber yang melakukan hotlinking pada sumber daya Anda.
Masuk ke Konsol OSS.
Di panel navigasi di sebelah kiri, klik Buckets. Di halaman Buckets, klik nama bucket target.
Di panel navigasi di sebelah kiri, pilih Manajemen Log > Kueri Waktu Nyata.
Filter catatan lalu lintas tidak biasa dan periksa bidang
refereruntuk mengidentifikasi pola nama domain situs web jahat.
Langkah 2: Konfigurasikan aturan perlindungan hotlink
Masuk ke Konsol OSS.
Di panel navigasi di sebelah kiri, klik Buckets. Di halaman Buckets, klik nama bucket target.
Di panel navigasi di sebelah kiri, pilih Keamanan Data > Perlindungan Hotlink.
Aktifkan sakelar Perlindungan Hotlink dan konfigurasikan parameter berikut:
Daftar Putih Referer: Masukkan karakter wildcard
*untuk mengizinkan akses dari semua sumber.*Blacklist Referer: Masukkan domain situs web jahat yang ingin diblokir, satu per baris.
*bad-site.example http://malicious-site.example https://malicious-site.exampleMenggunakan karakter wildcard adalah cara efektif untuk memblokir seluruh domain dan subdomainnya.
Referer Kosong: Pilih Izinkan. Ini memastikan bahwa akses langsung dan permintaan dari klien sah yang tidak mengirim header Referer dapat dilanjutkan.
Potong QueryString: Pilih Izinkan (default). Untuk fleksibilitas lebih besar, OSS mengabaikan bagian URL setelah tanda tanya (
?)—query string—saat mencocokkan Referer.
Klik Simpan.
Langkah 3: Verifikasi konfigurasi
Simulasikan Permintaan dari Situs Web Normal (Diharapkan Berhasil)
curl -e "http://www.example.com" http://your-bucket-name.oss-cn-hangzhou.aliyuncs.com/demo.txtHasil yang Diharapkan: Konten file dikembalikan.
Simulasikan Permintaan dari Situs Web yang Masuk Blacklist (Diharapkan Ditolak)
curl -e "http://bad-site.example" http://your-bucket-name.oss-cn-hangzhou.aliyuncs.com/demo.txtHasil yang Diharapkan: Pesan kesalahan
AccessDenieddikembalikan.Simulasikan Akses dengan Referer Kosong (Diharapkan Berhasil)
curl http://your-bucket-name.oss-cn-hangzhou.aliyuncs.com/demo.txtHasil yang Diharapkan: Konten file dikembalikan.
Izinkan akses dari mini program WeChat
Untuk menggunakan sumber daya OSS di mini program WeChat, konfigurasikan aturan perlindungan hotlink untuk mengizinkan format Referer spesifik yang dikirim oleh WeChat. Permintaan dari mini program WeChat memiliki format Referer tetap: https://servicewechat.com/{appid}/{version}/page-frame.html.
Langkah 1: Pahami format Referer mini program WeChat
Format Referer untuk mini program WeChat konsisten. Oleh karena itu, Anda dapat mengonfigurasinya langsung dengan karakter wildcard tanpa perlu menangkapnya terlebih dahulu. Untuk mengonfirmasi format tepatnya, ikuti langkah-langkah berikut:
Akses sumber daya OSS dari dalam mini program Anda.
Gunakan kueri waktu nyata untuk mengonfirmasi format Referer.
Periksa bidang
refererdalam log. Formatnya harus mirip denganhttps://servicewechat.com/wx1234567890abcdef/1/page-frame.html.
Langkah 2: Konfigurasikan aturan perlindungan hotlink
Masuk ke Konsol OSS.
Di panel navigasi di sebelah kiri, klik Buckets. Di halaman Buckets, klik nama bucket target.
Di panel navigasi di sebelah kiri, pilih Keamanan Data > Perlindungan Hotlink.
Aktifkan sakelar Perlindungan Hotlink dan konfigurasikan parameter berikut:
Daftar Putih Referer: Masukkan aturan wildcard untuk mini program WeChat dan domain untuk konsol OSS.
*servicewechat.com *.console.aliyun.comMenggunakan wildcard mengakomodasi semua AppID dan versi mini program WeChat, yang menyederhanakan konfigurasi. Menambahkan domain konsol memastikan bahwa fungsi manajemen tetap berfungsi.
Blacklist Referer: Biarkan bidang ini kosong.
Referer Kosong: Pilih Izinkan. Dalam beberapa kasus, mini program mungkin tidak mengirim Referer. Mengizinkan Referer kosong memastikan kompatibilitas.
Potong QueryString: Pilih Izinkan (default). Untuk fleksibilitas lebih besar, OSS mengabaikan bagian URL setelah tanda tanya (
?)—query string—saat mencocokkan Referer.
Klik Simpan.
Langkah 3: Verifikasi konfigurasi
Simulasikan Permintaan dari Mini Program WeChat (Diharapkan Berhasil)
curl -e "https://servicewechat.com/wx1234567890abcdef/1/page-frame.html" http://your-bucket-name.oss-cn-hangzhou.aliyuncs.com/demo.txtHasil yang Diharapkan: Konten file dikembalikan.
Simulasikan Permintaan dari Sumber yang Tidak Berwenang
curl -e "http://www.example.com" http://your-bucket-name.oss-cn-hangzhou.aliyuncs.com/demo.txtHasil yang Diharapkan: Pesan kesalahan
AccessDenied.Simulasikan Akses dengan Referer Kosong (Diharapkan Berhasil)
curl http://your-bucket-name.oss-cn-hangzhou.aliyuncs.com/demo.txtHasil yang Diharapkan: Konten file dikembalikan.
Aktifkan akses konsol untuk pratinjau dan unduhan
Setelah menyiapkan perlindungan hotlink, tambahkan *.console.aliyun.com ke daftar putih Referer Anda untuk mengizinkan pengunduhan dan pratinjau file dari konsol OSS. Ini memastikan bahwa kebijakan perlindungan hotlink Anda tidak memblokir permintaan yang berasal dari konsol OSS.
Langkah 1: Konfigurasikan aturan perlindungan hotlink
Masuk ke Konsol OSS.
Di panel navigasi di sebelah kiri, klik Buckets. Di halaman Buckets, klik nama bucket target.
Di panel navigasi di sebelah kiri, pilih Keamanan Data > Perlindungan Hotlink.
Aktifkan sakelar Perlindungan Hotlink dan konfigurasikan parameter berikut:
Daftar Putih Referer: Domain konsol OSS.
*.console.aliyun.comMenggunakan wildcard
*.console.aliyun.commemastikan kompatibilitas dengan semua subdomain konsol OSS, yang memungkinkan pratinjau berfungsi dengan benar di berbagai wilayah dan versi konsol.Blacklist Referer: Biarkan bidang ini kosong.
Referer Kosong: Pilih Izinkan. Ini memastikan bahwa akses langsung dan fungsi pratinjau konsol berfungsi dengan benar.
Potong QueryString: Pilih Izinkan (default). Untuk fleksibilitas lebih besar, OSS mengabaikan bagian URL setelah tanda tanya (
?)—query string—saat mencocokkan Referer.
Klik Simpan.
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.txtHasil yang Diharapkan: Konten file dikembalikan.
Verifikasi Pratinjau dan Unduhan dari Konsol (Diharapkan Berhasil)
Masuk ke konsol OSS.
Navigasikan ke bucket target.
Coba pratinjau dan unduh file.
Blokir akses langsung melalui URL
Anda dapat menerapkan bahwa semua permintaan harus berasal dari situs web tertentu. Untuk secara efektif mencegah pengguna mengakses sumber daya langsung menggunakan URL dan memberikan kontrol akses yang lebih ketat, larang Referer kosong.
Catatan:
Konfigurasi ini memblokir semua metode akses langsung, termasuk akses dari bookmark dan tautan di email.
Beberapa plug-in browser atau pengelola unduhan mungkin tidak berfungsi dengan benar.
Pemutar media mungkin tidak berfungsi dengan benar karena permintaan segmen mereka sering menghilangkan header Referer.
Langkah 1: Tentukan Referer situs web Anda
Identifikasi semua kombinasi domain dan protokol yang mungkin untuk situs web Anda untuk memastikan bahwa konfigurasi mencakup semua skenario akses sah:
Gunakan alat pengembang browser untuk mengonfirmasi nilai Referer aktual saat situs web Anda mengakses sumber daya OSS.
Pertimbangkan semua variasi domain yang mungkin, seperti dengan dan tanpa awalan www, dan subdomain yang berbeda.
Konfirmasikan dukungan untuk protokol HTTP dan HTTPS.
Langkah 2: Konfigurasikan aturan perlindungan hotlink
Masuk ke Konsol OSS.
Di panel navigasi di sebelah kiri, klik Buckets. Di halaman Buckets, klik nama bucket target.
Di panel navigasi di sebelah kiri, pilih Keamanan Data > Perlindungan Hotlink.
Aktifkan sakelar Perlindungan Hotlink dan konfigurasikan parameter berikut:
Daftar Putih Referer: Sertakan domain situs web Anda dan domain konsol OSS.
https://www.example.com http://www.example.com *.console.aliyun.comTambahkan semua kombinasi domain dan protokol yang diperlukan berdasarkan kebutuhan aktual Anda. Tambahkan domain konsol untuk memastikan bahwa fungsi manajemen berfungsi dengan benar.
Blacklist Referer: Biarkan bidang ini kosong.
Referer Kosong: Pilih Jangan Izinkan. Ini adalah pengaturan utama yang memblokir akses langsung ke sumber daya.
Potong QueryString: Pilih Izinkan (default). Untuk fleksibilitas lebih besar, OSS mengabaikan bagian URL setelah tanda tanya (
?)—query string—saat mencocokkan Referer.
Klik Simpan.
Langkah 3: Verifikasi konfigurasi
Simulasikan Permintaan dari Halaman Web (Diharapkan Berhasil)
curl -e "http://www.example.com" http://your-bucket-name.oss-cn-hangzhou.aliyuncs.com/demo.txtHasil yang Diharapkan: Konten file dikembalikan.
Simulasikan Akses Langsung (Diharapkan Ditolak)
curl http://your-bucket-name.oss-cn-hangzhou.aliyuncs.com/demo.txtHasil yang Diharapkan: Pesan kesalahan
AccessDenieddikembalikan, yang menunjukkan bahwa akses langsung diblokir.Simulasikan Permintaan dari Situs Web Lain (Diharapkan Ditolak)
curl -e "http://other.example" http://your-bucket-name.oss-cn-hangzhou.aliyuncs.com/demo.txtHasil yang Diharapkan: Pesan kesalahan
AccessDenieddikembalikan.
Terapkan dalam produksi
Risiko Pengabaian Cache pada CDN: Saat percepatan CDN dikonfigurasikan untuk sumber daya OSS, permintaan hotlinking dapat mengenai cache node tepi CDN dan dilayani, sehingga melewati perlindungan hotlink OSS. Untuk memastikan perlindungan yang komprehensif dan efektif, Anda harus mengonfigurasi aturan perlindungan hotlink Referer yang sama di lapisan CDN guna menerapkan perlindungan multi-lapis.
Dampak Referrer-Policy Browser: Browser modern mendukung header Referrer-Policy, yang memungkinkan situs web mengontrol jumlah informasi Referer yang dikirim dalam permintaan lintas asal. Kebijakan tertentu, seperti no-referrer, menyebabkan browser menghilangkan header Referer. OSS memperlakukan ini sebagai permintaan Referer kosong, yang perlu dipertimbangkan selama konfigurasi.
Kompatibilitas Pemutaran Video: Saat Anda memutar file video secara online menggunakan tag video browser asli, browser biasanya mengirim dua jenis permintaan: permintaan pemuatan halaman awal dengan Referer dan permintaan data media berikutnya tanpa Referer. Untuk memastikan pemutaran video berfungsi dengan benar, Anda harus mengizinkan akses Referer kosong.
Aturan konfigurasi Referer
Saat mengonfigurasi daftar putih atau blacklist Referer, Anda harus mematuhi aturan berikut:
Aturan | Deskripsi |
Pencocokan Referer mencakup protokol URL | Aturan yang dikonfigurasi sebagai |
Karakter wildcard asterisk (*) menggantikan nol atau lebih karakter. |
|
Karakter wildcard tanda tanya (?) menggantikan satu karakter. | Aturan yang dikonfigurasi sebagai |
Referer dapat mencakup domain atau alamat IP dengan port. | Contohnya termasuk |
Aturan penguraian QueryString
Jika Anda tidak mengizinkan pemotongan QueryString, OSS akan menguraikan QueryString berdasarkan aturan berikut:
Aturan | Deskripsi |
QueryString tidak di-decode URL. | Untuk URL permintaan |
Parameter dalam QueryString tidak peka huruf besar-kecil. | Untuk URL permintaan |
Menonaktifkan penguraian parameter query string | Untuk URL permintaan |
Kuota dan batasan
Kondisi Pemicu: OSS hanya memvalidasi perlindungan hotlink saat objek diakses secara anonim atau menggunakan URL yang ditandatangani. Panggilan API yang ditandatangani dengan metode seperti AccessKey tidak terpengaruh oleh aturan perlindungan hotlink. Permintaan ini mencakup header
Authorization.Batas Ukuran Daftar: Ukuran total data gabungan dari daftar putih dan blacklist Referer tidak boleh melebihi 20 KB. Jika batas ini dilampaui, kesalahan InlineDataTooLarge akan muncul saat Anda menyimpan konfigurasi.
Spesifikasi Format: Aturan mendukung karakter wildcard asterisk (*) dan tanda tanya (?) untuk pencocokan pola. Pencocokan mencakup nama protokol serta mendukung format domain atau alamat IP dengan nomor port.
Ruang Lingkup Efek: Aturan perlindungan hotlink berlaku pada tingkat bucket. Tidak dimungkinkan untuk mengonfigurasi aturan berbeda untuk objek atau direktori tertentu dalam bucket.
FAQ
Mengapa konfigurasi perlindungan hotlink saya tidak berfungsi?
Periksa item berikut secara berurutan:
Pemeriksaan lingkungan browser: Lingkungan browser tertentu, seperti mini program WeChat atau iframe, dapat memodifikasi atau menetapkan nilai Referer tertentu. Gunakan log waktu nyata OSS atau alat pengembang browser untuk memeriksa nilai Referer aktual dari permintaan, lalu konfigurasikan ulang aturan perlindungan hotlink.
Spesifikasi format Referer: Pastikan Referer yang dimasukkan memiliki format yang benar. Permintaan dari browser biasanya mencakup awalan protokol http:// atau https://. Jika awalan protokol dihilangkan dalam konfigurasi, permintaan tidak akan cocok dengan benar. Ikuti aturan konfigurasi Referer OSS.
Pengabaian cache pada CDN: Jika Anda menggunakan CDN untuk mempercepat akses ke OSS tetapi belum mengonfigurasi perlindungan hotlink pada CDN, permintaan mungkin melewati validasi. Misalnya, jika permintaan CDN awal dengan Referer yang benar menyimpan file dalam cache, permintaan berikutnya tanpa Referer mungkin dilayani file yang di-cache. Konfigurasikan aturan perlindungan hotlink yang konsisten pada CDN Anda.
Bagaimana cara menyelesaikan kesalahan akses ditolak untuk sumber daya OSS di mini program WeChat?
Permintaan dari mini program WeChat memiliki format Referer tetap yang biasanya dimulai dengan https://servicewechat.com/. Tambahkan aturan *servicewechat.com ke daftar putih perlindungan hotlink Anda untuk mengakomodasi akses dari semua mini program.
Bagaimana cara menyelesaikan kesalahan akses ditolak saat mengakses file langsung dari bilah alamat browser?
Mengakses file langsung dari bilah alamat browser menghasilkan permintaan dengan Referer kosong. Jika konfigurasi perlindungan hotlink Anda tidak mengizinkan Referer kosong, jenis akses ini akan ditolak. Untuk mendukung akses langsung, ubah opsi Referer Kosong dalam pengaturan perlindungan hotlink Anda menjadi Izinkan.
Apa yang harus saya lakukan jika saya mendapatkan kesalahan "InlineDataTooLarge" saat menyimpan konfigurasi?
Kesalahan ini menunjukkan bahwa ukuran total daftar Referer Anda (daftar putih dan blacklist digabungkan) melebihi batas 20 KB. Gunakan karakter wildcard untuk menggabungkan aturan serupa atau hapus entri yang tidak perlu untuk mengurangi ukuran konfigurasi.