URL imzalama, site kaynaklarınızı yetkisiz indirmelere ve hotlink'e karşı korur. Bu konu, Alibaba Cloud CDNDCDN içinde Type A imzalamanın nasıl çalıştığını açıklar ve bir örnek sunar.
Nasıl çalışır?
-
Type A imzalı URL'nin yapısı
http://DomainName/Filename?auth_key={<timestamp>-rand-uid-<md5hash>}Not{}içine alınan içerik, standart URL'ye eklenen imzalama bilgilerini temsil eder. -
Alan açıklamaları
Alan
Açıklama
DomainName
CDN sitenizin alan adı.
Filename
Gerçek kaynak erişimi için kullanılan URL. Filename bir eğik çizgi (
/) ile başlamalıdır.auth_key
İmzalama bilgileri; timestamp, rand, uid ve md5hash bileşenlerinden oluşur.
timestamp
İmzalama sunucusunun imzalı URL'yi oluşturduğu zaman. Bu değer ve Validity Period of Signed URL birlikte imzalı URL'nin ne zaman sona ereceğini belirler. Değer, 1 Ocak 1970 saat 00:00:00'dan itibaren geçen saniye sayısını gösteren 10 basamaklı bir UNIX zaman damgasıdır.
NotConfigure URL Signing konsolunda TTL değerini yapılandırın. İmzalı URL,
timestamp+ yapılandırılan geçerlilik süresi sonunda sona erer.rand
Rastgele bir sayı. Tire (-) içermeyen bir UUID olarak ayarlayın; örneğin, 477b3bbc253f467b8def6711128c7bec.
uid
Kullanıcı kimliği. Bu alan kullanılmaz. Değeri 0 olarak ayarlayın.
md5hash
MD5 algoritması kullanılarak hesaplanan, rakamlar ve küçük harflerden oluşan 32 karakterlik bir dizedir.
Hesaplama yöntemi:
sstring = "URI-Timestamp-rand-uid-PrivateKey" (URI istenen nesnenin göreli yoludur, örneğin /Filename, ve parametreleri içermez.) md5hash = md5sum(sstring) -
Kimlik doğrulama mantığı
Bir CDNDCDN sunucusu bir kaynak isteği aldığında,
timestamp+validity period of the signed URLdeğerinin geçerli zamandan önce olup olmadığını kontrol eder.Eğer
timestamp+validity period of the signed URLgeçerli zamandan önceyse, imzalı URL'nin süresi dolmuş demektir ve sunucu HTTP 403 hatası döndürür.-
Eğer
timestamp+validity period of the signed URLgeçerli zamandan sonraysa, sunucusstringformatında bir dize oluşturur (tablodakisstringformatına bakın). Ardından, MD5 algoritmasını kullanarakmd5hashdeğerini hesaplar ve hesaplananmd5hashdeğerini kullanıcının isteğindekimd5hashdeğeriyle karşılaştırır.-
Değerler eşleşirse kimlik doğrulama başarılı olur ve kaynak döndürülür.
NotKimlik doğrulama başarılı olduğunda, imzalama parametreleri URL'den kaldırılır. Bu işlem önbelleğe isabet oranını artırır ve kaynağa dönüş trafiğini azaltır. Örneğin:
İmzalama parametrelerini içeren URL:
http://DomainName/Filename?auth_key={<timestamp>-rand-uid-<md5hash>}-
Başarılı kimlik doğrulamadan sonra:
Önbellek anahtarını oluşturmak için kullanılan URL formatı:
http://DomainName/FileNameGerçek kaynak erişimi için kullanılan URL formatı:
http://DomainName/FileName
Değerler eşleşmezse kimlik doğrulama başarısız olur ve HTTP 403 hatası döndürülür.
-
İmzalı URL örneği
Aşağıdaki örnek Type A imzalamayı göstermektedir.
-
Örnek koşullar
-
Kaynak istek nesnesi:
http://domain.example.com/video/standard/test.mp4Notİstek URL'si ASCII olmayan karakterler içeriyorsa, öncelikle URL'yi kodlamalısınız. Hash dizesini oluşturmak için kodlanmış URL'yi kullanın. Örneğin:
Orijinal URL:
https://example.com/image/AlibabaCloud.jpgKodlanmış URL:
https://example.com/image/%E9%98%BF%E9%87%8C%E4%BA%91.jpg
Anahtar şu şekilde ayarlanır: aliyuncdnexp1234.
İmzalama sunucusu, imzalı URL'yi 10 Ekim 2015 tarihinde saat 08:00:00'da (UTC+8) oluşturur; bu, 1444435200 ondalık tamsayı değerine karşılık gelir.
-
-
Birleştirme süreci
-
CDNDCDN sunucusu,
md5hashhesaplamak için hashlenecek bir dize oluşturur./video/standard/test.mp4-1444435200-0-0-aliyuncdnexp1234 -
Bu dizeye dayanarak, CDNDCDN sunucusu
md5hashdeğerini hesaplar.md5hash = md5sum("/video/standard/test.mp4-1444435200-0-0-aliyuncdnexp1234") = 23bf85053008f5c0e791667a313e28ce -
İmzalı URL'yi oluşturun.
http://domain.example.com/video/standard/test.mp4?auth_key=1444435200-0-0-23bf85053008f5c0e791667a313e28ce
-
Bir istemci imzalı URL kullanarak bir kaynak istediğinde, CDNDCDN sunucusu bir md5hash değeri hesaplar ve bunu istekteki md5hash değeriyle (23bf85053008f5c0e791667a313e28ce) karşılaştırır. Değerler eşleşir ve imzalı URL'nin süresi dolmamışsa kimlik doğrulama başarılı olur. Aksi takdirde kimlik doğrulama başarısız olur.