Secara default, konten yang didistribusikan oleh CDN dapat diakses publik oleh siapa pun yang memiliki URL tersebut. Untuk mencegah pengunduhan berbahaya dan penggunaan sumber daya situs Anda tanpa izin, Anda dapat mengaktifkan fitur Penandatanganan URL. Fitur ini memberikan perlindungan yang lebih kuat dibandingkan Perlindungan hotlink atau daftar hitam dan daftar putih IP. Penandatanganan URL melindungi sumber daya origin Anda dengan memvalidasi string terenkripsi dan timestamp yang disertakan dalam request URL.
Cara kerja
Fitur Penandatanganan URL menggunakan titik keberadaan (POPs) Alibaba Cloud CDN serta server origin Anda untuk menciptakan metode aman guna mencegah hotlinking sumber daya. Proses ini melibatkan komponen-komponen berikut:
Server aplikasi origin: Menghasilkan signed URL untuk klien berdasarkan aturan penandatanganan, yang mencakup algoritma dan kunci.
Client: Memulai permintaan sumber daya dan mengirimkan signed URL ke POP CDN untuk validasi.
POP CDN: Memvalidasi informasi dalam signed URL, seperti string yang ditandatangani dan timestamp.
Pelanggan mengonfigurasi aturan pembuatan signed URL pada server origin. Aturan ini mencakup algoritma penandatanganan dan kunci.
Sebagai contoh, sebuah signed URL adalah
http://DomainName/timestamp/md5hash/FileName.Ketika client mengakses halaman di server, server menghasilkan signed URL berdasarkan aturan tersebut. Server kemudian mengembalikan signed URL tersebut ke client dalam konten halaman (Langkah 2 dan 3 pada diagram).
Client menggunakan signed URL tersebut untuk meminta sumber daya dari POP (Langkah 4 pada diagram).
POP memvalidasi informasi dalam signed URL, seperti string yang ditandatangani dan timestamp, untuk memeriksa apakah permintaan tersebut valid.
Jika otentikasi gagal, permintaan akses akan ditolak.
Jika otentikasi berhasil, permintaan akan diproses.
CatatanJika suatu sumber daya tidak tersimpan dalam cache di POP, POP akan menghapus parameter autentikasi dari signed URL, mengembalikannya ke bentuk URL asli (misalnya,
http://DomainName/FileName), lalu menggunakan URL asli tersebut untuk menghasilkan kunci cache atau memulai permintaan asal.Setelah request URL Anda diautentikasi oleh CDN, karakter khusus dalam URL, seperti karakter Tionghoa atau karakter non-ASCII lainnya, akan diencode.
Perilaku log
Permintaan yang gagal dalam otentikasi tetap dapat mencapai POP. Namun, POP akan menolak permintaan tersebut dan mengembalikan kode status 403. Upaya otentikasi yang gagal tetap dicatat dalam log CDN.
Penagihan
Karena Penandatanganan URL memvalidasi string terenkripsi kustom dan timestamp, Anda dikenakan biaya trafik dalam jumlah kecil ketika POP memblokir permintaan berbahaya. Jika client menggunakan protokol HTTPS, Anda juga dikenakan biaya permintaan HTTPS. Hal ini karena pemblokiran permintaan berbahaya mengonsumsi sumber daya pemrosesan pada POP.
Konfigurasi dan aktifkan Penandatanganan URL
Pastikan Anda telah mengonfigurasi aturan pembuatan signed URL pada server aplikasi origin Anda. Aturan ini mencakup algoritma penandatanganan dan kunci.
Logika Penandatanganan URL yang dikonfigurasi di CDN harus konsisten dengan logika Penandatanganan URL pada server aplikasi origin Anda.
Masuk ke CDN console.
Di panel navigasi sebelah kiri, klik Domain Names.
Pada halaman Domain Names, temukan nama domain target dan klik Manage di kolom Actions.
Di panel navigasi domain, klik Access Control.
Klik tab URL Signing.
Di area URL Signing, klik Modify.
Aktifkan sakelar Set URL Signing dan konfigurasikan informasi Penandatanganan URL.

Parameter
Deskripsi
Type
Alibaba Cloud CDN menyediakan empat metode untuk perhitungan tanda tangan. Pilih metode penandatanganan berdasarkan format URL akses terenkripsi Anda untuk melindungi sumber daya origin Anda. Jenis-jenis Penandatanganan URL adalah sebagai berikut:
CatatanKesalahan Penandatanganan URL mengembalikan error 403.
Kesalahan perhitungan MD5
Contoh:
X-Tengine-Error:denied by req auth: invalid md5hash=de7bfdc915ced05e17380a149bd760beKesalahan terkait waktu
Contoh:
X-Tengine-Error:denied by req auth: expired timestamp=1439469547
Primary Key
Masukkan kata sandi utama untuk metode autentikasi. Kata sandi harus terdiri dari 6 hingga 128 karakter dan dapat berisi huruf besar, huruf kecil, serta angka.
Secondary Key
Masukkan kunci sekunder untuk metode penandatanganan. Kunci harus terdiri dari 6 hingga 128 karakter dan dapat berisi huruf besar, huruf kecil, serta angka. Anda harus menentukan setidaknya satu kunci, baik primary maupun secondary.
Signed URL Validity Period
Periode validitas signed URL yang dikonfigurasi di CDN. Pengguna dapat mengakses CDN dalam rentang waktu (timestamp + periode validitas). Setelah periode ini berakhir, otentikasi kedaluwarsa.
Unit: detik
Rentang nilai: 1 hingga 31536000
Nilai default: 1800 (30 menit)
Contoh: Jika server penandatanganan menghasilkan signed URL pada pukul 15:00:00 tanggal 15 Agustus 2020 (UTC+8) dan periode validitasnya adalah 1800 detik, maka signed URL tersebut kedaluwarsa pada pukul 15:30:00 tanggal 15 Agustus 2020 (UTC+8).
Signature Parameter
Memungkinkan Anda menyesuaikan nama parameter signature. Ini hanya berlaku ketika **Signing Type** diatur ke **Type F**.
Timestamp Parameter
Memungkinkan Anda menyesuaikan nama parameter timestamp. Ini hanya berlaku ketika **Signing Type** diatur ke **Type F**.
Timestamp Format
Tentukan format timestamp. Format desimal (Unix timestamp) dan heksadesimal (Unix timestamp) didukung. Ini hanya berlaku ketika **Signing Type** diatur ke **Type F**.
URL Encoding
Sakelar URL encoding. Secara default dinonaktifkan. Jika diaktifkan, URL permintaan pengguna akan di-URL-encode. Ini hanya berlaku ketika **Signing Type** diatur ke **Type F**.
Rule Condition
Kondisi aturan mengidentifikasi berbagai parameter dalam permintaan pengguna untuk menentukan apakah konfigurasi berlaku untuk permintaan tersebut.
Do not use: Jangan gunakan kondisi aturan.
Untuk menambah atau mengedit kondisi aturan, kelola di Rules Engine.
Klik OK.
Verifikasi kebenaran signed URL
Setelah Anda mengonfigurasi signed URL, kami menyarankan agar Anda menghasilkan signed URL yang sesuai di Konsol CDN untuk memastikan bahwa server Anda telah menerapkan logika autentikasi dengan benar.
Di area Generate Signed URL, konfigurasikan Original URL dan informasi penandatanganan.

Parameter
Deskripsi
Original URL
Masukkan Original URL lengkap. Contoh:
https://www.aliyun.com.Type
Pilih jenis Penandatanganan URL berdasarkan konfigurasi Anda di Konfigurasi dan aktifkan Penandatanganan URL.
Cryptographic Key
Masukkan Primary Key atau Secondary Key yang telah Anda konfigurasi di Konfigurasi dan aktifkan Penandatanganan URL.
TTL
Masukkan periode validitas signed URL dalam satuan detik, sesuai konfigurasi Anda di Konfigurasi dan aktifkan Penandatanganan URL.
Klik Generate untuk mendapatkan Signed URL dan Timestamp.

Nonaktifkan Penandatanganan URL
Jika Anda menonaktifkan fitur Penandatanganan URL di CDN, tetapi permintaan client masih menyertakan parameter penandatanganan dalam URL, CDN tidak dapat mengembalikan request URL ke bentuk aslinya. Akibatnya, semua permintaan gagal mengenai cache dan diteruskan ke server origin. Hal ini menyebabkan lonjakan tajam pada lalu lintas origin dan biaya server origin. Oleh karena itu, untuk berhenti menggunakan Penandatanganan URL, Anda harus menonaktifkan fitur tersebut baik di server aplikasi maupun di Konsol CDN.
Di area URL Signing pada CDN console, klik Modify dan matikan sakelar Penandatanganan URL.
Hapus parameter penandatanganan dari request URL di server aplikasi Anda.