Par défaut, le contenu distribué par CDNDCDN est public et accessible à toute personne disposant de son URL. Pour protéger vos ressources d'origine contre les accès non autorisés et les téléchargements malveillants, vous pouvez utiliser la signature d'URL en complément d'autres méthodes de contrôle d'accès, telles que la protection contre le hotlinking via le Referer et les listes d'autorisation/blocage d'adresses IP. La signature d'URL sécurise votre contenu en validant la chaîne chiffrée et l'horodatage contenus dans une URL signée.
Fonctionnement
La signature d'URL empêche l'accès non autorisé à vos ressources d'origine en coordonnant les requêtes entre les points de présence (POP) Alibaba Cloud CDNDCDN et votre origine. Le processus repose sur trois composants clés :
Serveur d'application d'origine : génère une URL signée selon une règle de signature définie, incluant l'algorithme et la clé, puis la renvoie au client.
Client : envoie l'URL signée à un POP CDNDCDN pour demander une ressource.
POP CDNDCDN : valide les informations contenues dans l'URL signée, telles que la chaîne de signature et l'horodatage.
-
Les clients CDNDCDN configurent les règles de génération des URL signées (incluant un algorithme de signature et une clé) sur le serveur d'application d'origine.
Par exemple, une URL signée peut suivre le format
http://DomainName/timestamp/md5hash/FileName. Lorsqu'un client accède à une page de votre application, le serveur d'application d'origine génère une URL signée selon les règles configurées et l'intègre à la page renvoyée au client.
Le client utilise l'URL signée pour demander la ressource auprès d'un POP CDNDCDN.
-
Le POP CDNDCDN valide les informations contenues dans l'URL signée, telles que la chaîne de signature et l'horodatage, afin de déterminer si la requête est légitime.
Si l'authentification échoue, le POP rejette la requête.
-
Si l'authentification réussit, le POP diffuse le contenu.
RemarqueSi un nœud CDNDCDN ne dispose pas de la ressource en cache, il supprime les paramètres d'authentification de l'URL signée pour la restaurer sous sa forme d'origine (par exemple,
http://DomainName/FileName), puis utilise cette URL d'origine pour générer une clé de cache ou initier une requête de récupération depuis l'origine.Après avoir authentifié l'URL de la requête, CDNDCDN encode tous les caractères spéciaux présents dans l'URL, tels que les caractères chinois ou autres caractères non ASCII.
Remarques d'utilisation
Une fois la signature d'URL configurée, les requêtes dont l'authentification échoue peuvent toujours atteindre les nœuds CDNDCDN, mais elles sont rejetées par ces nœuds et un code d'état 403 est renvoyé. Les journaux CDNDCDN enregistrent néanmoins ces échecs d'authentification.
La validation des requêtes s'effectue au niveau des POP CDNDCDN. Par conséquent, l'interception des requêtes malveillantes consomme une petite quantité de trafic facturable. Pour les requêtes HTTPS, des frais supplémentaires s'appliquent car les POP CDNDCDN mobilisent des ressources de traitement pour effectuer cette interception.
La signature d'URL elle-même n'est pas facturée séparément. Il s'agit d'une fonctionnalité de sécurité CDN de base, aux côtés de la protection contre le hotlinking via le Referer, de l'authentification distante et des listes d'autorisation/blocage d'adresses IP et d'agents utilisateur (UA).
Une fois la signature d'URL activée, chaque URL de requête doit inclure les paramètres d'authentification. Cette fonctionnalité ne convient pas aux sites portails. Elle est idéale pour les sites hébergeant des ressources, tels que ceux diffusant de grands volumes d'images ou de vidéos.
-
Lorsque vous purgez ou préchargez des ressources pour un nom de domaine accéléré dans Alibaba Cloud CDN utilisant la signature d'URL, soumettez une URL correspondant à la clé de cache de la ressource. La console ne supprime pas les paramètres d'authentification, n'encode pas en pourcentage les valeurs des paramètres de requête et ne normalise pas autrement l'URL que vous soumettez.
Pour un nom de domaine accéléré dont le traitement de signature d'URL a été confirmé comme supprimant les paramètres d'authentification et encodant en pourcentage les barres obliques dans les valeurs conservées des paramètres de requête métier, déterminez l'URL finale de purge ou de préchargement comme suit :
-
URL d'accès du client. Cette URL contient les paramètres de requête métier et les paramètres d'authentification.
https://image.example.com/cat.jpg?x-oss-process=image/resize,m_fill,w_390,h_520,limit_1/auto-orient,1/sharpen,100/quality,q_80&k=123456789abcdefg&t=123abc -
URL après suppression des paramètres d'authentification. Supprimez les paramètres de signature et d'horodatage configurés, tout en conservant les paramètres de requête métier.
https://image.example.com/cat.jpg?x-oss-process=image/resize,m_fill,w_390,h_520,limit_1/auto-orient,1/sharpen,100/quality,q_80 -
URL finale de purge ou de préchargement. Encodez en pourcentage les barres obliques présentes dans la valeur du paramètre de requête conservé, afin que l'URL corresponde à la clé de cache confirmée. Les séparateurs de chemin, tels que la barre oblique précédant
cat.jpg, restent inchangés.https://image.example.com/cat.jpg?x-oss-process=image%2Fresize,m_fill,w_390,h_520,limit_1%2Fauto-orient,1%2Fsharpen,100%2Fquality,q_80
Dans la méthode F, les noms Signature Parameter et Timestamp Parameter sont configurés par nom de domaine accéléré. Les paramètres
kettde cet exemple ne sont pas des noms de paramètres fixes.Pour obtenir des instructions sur la soumission des URL de purge et de préchargement, consultez la rubrique Purger et précharger des ressources.
-
Configurer et activer la signature d'URL
Assurez-vous d'avoir configuré les règles de génération des URL signées, y compris l'algorithme de signature et la clé, sur votre serveur d'application d'origine.
La logique de signature d'URL configurée dans la console CDNDCDN doit correspondre à celle de votre serveur d'application d'origine.
Connectez-vous à la console CDN.
Dans le volet de navigation de gauche, cliquez sur Domain Names.
Sur la page Domain Names, localisez le nom de domaine cible et cliquez sur Manage dans la colonne Actions.
Dans le volet de navigation du domaine, cliquez sur Access Control.
Cliquez sur l'onglet URL Signing.
Dans la section URL Signing, cliquez sur Modify.
-
Activez le commutateur URL Signing et configurez les paramètres.
Paramètre
Description
Type
Alibaba Cloud CDN propose quatre méthodes de signature. Vous pouvez sélectionner un type de signature en fonction du format de vos URL signées afin de protéger efficacement vos ressources d'origine. Les types de signature d'URL suivants sont disponibles :
RemarqueEn cas d'échec de la signature d'URL, une erreur 403 est renvoyée :
Erreur de calcul MD5
Exemple :
X-Tengine-Error:denied by req auth: invalid md5hash=de7bfdc915ced05e17380a149bd760beErreur liée au temps
Exemple :
X-Tengine-Error:denied by req auth: expired timestamp=1439469547
Primary Key
Saisissez la clé principale pour la méthode de signature. La clé doit comporter entre 6 et 128 caractères et peut contenir des lettres majuscules, des lettres minuscules et des chiffres.
Secondary Key
Saisissez la clé secondaire pour la méthode de signature. La clé doit comporter entre 6 et 128 caractères et peut contenir des lettres majuscules, des lettres minuscules et des chiffres. Vous devez spécifier au moins une clé principale ou secondaire.
TTL
Spécifie la période de validité de l'URL signée. Un client doit accéder à la ressource dans le délai défini par l'horodatage + TTL. Les requêtes envoyées après cette période échouent à l'authentification.
Unité : secondes
Valeurs valides : 1 à 31536000
Valeur par défaut : 1800 (30 minutes)
Exemple : Si votre serveur de signature génère une URL signée à 15:00:00 (UTC+8) le 15 août 2020 et que le TTL est de 1 800 secondes, l'URL signée expire à 15:30:00 (UTC+8) le 15 août 2020.
Signature Parameter
Vous pouvez personnaliser les noms des paramètres de signature. Cette option n'est valide que lorsque le type d'authentification est défini sur Méthode F.
Timestamp Parameter
Vous pouvez personnaliser le nom du paramètre d'horodatage. Cette option n'est effective que lorsque le type d'authentification est défini sur Type F.
Timestamp Format
Définit le format de l'horodatage, qui peut être décimal (horodatage Unix) ou hexadécimal (horodatage Unix). Ce paramètre ne prend effet que lorsque le type d'authentification est défini sur Type F.
URL Encoding
Le commutateur d'encodage d'URL est désactivé par défaut. Si vous activez ce commutateur, il encode les URL des requêtes utilisateur. Cette fonctionnalité n'est effective que lorsque le type d'authentification est défini sur Méthode F.
Rule Condition
Une condition de règle identifie diverses informations de paramètre dans une requête utilisateur. Cela détermine si une configuration prend effet pour cette requête.
ImportantLorsque vous référencez des conditions de règle, elles sont mises en correspondance en fonction de la priorité des conditions de règle associées, et non de l'ordre de configuration de la fonctionnalité elle-même.
Ne pas utiliser : N'utilise pas de condition de règle.
Pour ajouter ou modifier des conditions de règle, gérez-les dans le Rules Engine.
Cliquez sur OK.
Vérifier l'URL signée
Après avoir configuré la signature d'URL, utilisez le générateur d'URL signées dans la console CDN pour générer une URL signée et vérifier l'implémentation. Ce processus confirme que la logique de signature de votre serveur est correcte.
-
Dans la section Signed URL Generator, spécifiez l'Original URL (Unencoded) et les autres informations de signature.
Paramètre
Description
Original URL (Unencoded)
Saisissez l'URL d'origine complète, par exemple
https://www.aliyun.com. L'outil encode automatiquement l'URL d'origine lors de la génération de l'URL signée.Type
Sélectionnez le type de signature d'URL en fonction des paramètres que vous avez configurés dans la section Configurer et activer la signature d'URL.
Cryptographic Key
Saisissez la Primary Key ou la Secondary Key que vous avez configurée dans la section Configurer et activer la signature d'URL.
TTL
Saisissez le TTL pour la signature d'URL en secondes, en fonction des paramètres que vous avez configurés dans la section Configurer et activer la signature d'URL.
Cliquez sur Generate pour obtenir l'Signed URL et l'Timestamp.
Désactiver la signature d'URL
Si vous désactivez la signature d'URL dans la console CDNDCDN mais que les requêtes client contiennent toujours des paramètres de signature, CDNDCDN ne peut pas restaurer les URL de requête à leur format d'origine. Cela entraîne des échecs de cache, redirigeant toutes ces requêtes vers votre origine. Par conséquent, votre trafic d'origine et vos coûts augmentent considérablement. Ainsi, pour désactiver complètement la signature d'URL, vous devez supprimer la configuration à la fois de votre serveur d'application et de la console CDNDCDN.
Dans la section URL Signing de la console CDN, cliquez sur Modify et désactivez le commutateur de signature d'URL.
Sur votre serveur d'application, supprimez la logique qui ajoute des paramètres de signature aux URL de requête.