Blocage du courrier indésirable

L’exemple suivant montre comment configurer Fastly Edge Dictionary avec un extrait de code VCL personnalisé pour bloquer le courrier indésirable de référence de votre Adobe Commerce sur le site d’infrastructure cloud.

NOTE
Nous vous recommandons d’ajouter des configurations VCL personnalisées à un environnement d’évaluation dans lequel vous pouvez les tester avant de les exécuter par rapport à l’environnement de production.

Conditions préalables :

  • Votre environnement doit être configuré pour utiliser le CDN Fastly. Voir Configuration de services rapides.

  • Vérifiez que vous exécutez la dernière version du module CDN Fastly pour Magento 2. Voir Mise à niveau du module Fastly.

  • Vérifiez la configuration de l’environnement pour le service Fastly. Voir Vérification de la mise en cache rapide.

  • Vous devez disposer des informations d’identification d’administrateur pour accéder aux environnements d’évaluation et de production.

  • Recherchez dans les journaux de votre site de fausses URL de référence et créez une liste de domaines à bloquer.

Création d’une liste bloquée de référent

Les dictionnaires Edge créent des paires clé-valeur accessibles aux fonctions VCL pendant le traitement des fragments de code VCL. Dans cet exemple, vous créez un dictionnaire Edge qui fournit la liste des sites Web de référents à bloquer.

  1. Connectez-vous à l’administrateur.

  2. Cliquez sur Magasins > Paramètres > Configuration > Avancé > Système.

  3. Développez Cache de page complète > Configuration rapide > Dictionnaires Edge.

  4. Créez le conteneur de dictionnaire :

    • Cliquez sur Ajouter un conteneur.

    • Sur la page Container, saisissez un nom du dictionnairereferrer_blocklist.

    • Sélectionnez Activer après la modification pour déployer vos modifications dans la version de la configuration de service Fastly que vous modifiez.

    • Cliquez sur Télécharger pour joindre le dictionnaire à votre configuration de service Fastly.

  5. Ajoutez la liste des noms de domaine à bloquer au dictionnaire referrer_blocklist :

    • Cliquez sur l’icône Paramètres pour le dictionnaire referrer_blocklist.

    • Ajoutez et enregistrez des paires clé-valeur dans le nouveau dictionnaire. Pour cet exemple, chaque Clé est le nom de domaine d’une URL de référent à bloquer et Valeur est true.

      Ajouter des éléments de dictionnaire de référent incorrect

    • Cliquez sur Annuler pour revenir à la page de configuration du système.

  6. Cliquez sur Enregistrer la configuration.

  7. Actualisez le cache en fonction de la notification dans la partie supérieure de la page.

Pour plus d’informations sur les dictionnaires Edge, voir Création et utilisation des dictionnaires Edge et fragments de code VCL personnalisés dans la documentation Fastly.

Création d’un fragment de code VCL personnalisé pour bloquer le courrier indésirable d’un référent

Le code de fragment de code VCL personnalisé suivant (format JSON) indique la logique permettant de vérifier et de bloquer les requêtes. Le fragment de code VCL capture l’hôte d’un site web référent dans un en-tête, puis compare le nom d’hôte à la liste des URL dans le dictionnaire referrer_blocklist. Si le nom d’hôte correspond, la requête est bloquée avec une erreur 403 Forbidden.

{
  "name": "block_bad_referrer",
  "dynamic": "0",
  "type": "recv",
  "priority": "5",
  "content": "set req.http.Referer-Host = regsub(req.http.Referer, \"^https?:\/\/?([^:\/s]+).*$\", \"\\1\"); if (table.lookup(referrer_blocklist, req.http.Referer-Host)) { error 403 \"Forbidden\"; }"
}

Avant de créer un fragment de code basé sur cet exemple, vérifiez les valeurs pour déterminer si vous devez apporter des modifications :

  • name — Nom du fragment de code VCL. Pour cet exemple, nous avons utilisé block_bad_referrer.

  • dynamic — La valeur 0 indique un fragment de code normal à charger vers le VCL versionné pour la configuration Fastly.

  • priority — Détermine le moment où le fragment de code VCL s’exécute. La priorité est 5 pour exécuter ce code de fragment de code avant l’un des fragments de code VCL de Magento par défaut (magentomodule_*) auxquels une priorité de 50 est affectée. Définissez la priorité de chaque fragment de code personnalisé sur une valeur supérieure ou inférieure à 50 selon le moment où vous souhaitez que votre fragment de code s’exécute. Les fragments de code dont les numéros de priorité sont plus bas s’exécutent en premier.

  • type — Spécifie un emplacement pour insérer le fragment de code dans la version VCL. Dans cet exemple, le fragment de code VCL est un fragment de code recv. Lorsque le fragment de code est inséré dans la version VCL, il est ajouté à la sous-routine vcl_recv, sous le code VCL Fastly par défaut et au-dessus de tout objet.

  • content : extrait de code VCL à exécuter sur une ligne, sans saut de ligne.

Après avoir examiné et mis à jour le code de votre environnement, utilisez l’une des méthodes suivantes pour ajouter le fragment de code VCL personnalisé à votre configuration de service Fastly :

Ajout du fragment de code VCL personnalisé

  1. Connectez-vous à l’administrateur.

  2. Cliquez sur Magasins > Paramètres > Configuration > Avancé > Système.

  3. Développez Cache de page complète > Configuration rapide > Fragments de code VCL personnalisés.

  4. Cliquez sur Créer un fragment de code personnalisé.

  5. Ajoutez les valeurs du fragment de code VCL :

    • Nomblock_bad_referrer

    • Typerecv

    • Priorité5

    • VCL contenu de fragment de code —

      code language-conf
      set req.http.Referer-Host = regsub(req.http.Referer,
      "^https?://?([^:/\s]+).*$", "1");
      if (table.lookup(referrer_blocklist, req.http.Referer-Host)) {
        error 403 "Forbidden";
      }
      
  6. Cliquez sur Créer.

    Créer un fragment de code VCL de bloc de référent personnalisé

  7. Après le rechargement de la page, cliquez sur Télécharger VCL vers Fastly dans la section Configuration Fastly .

  8. Une fois le transfert terminé, actualisez le cache en fonction de la notification dans la partie supérieure de la page.

Valide rapidement la version mise à jour de VCL pendant le processus de chargement. Si la validation échoue, modifiez votre extrait de code VCL personnalisé pour résoudre les problèmes. Ensuite, chargez à nouveau le VCL.

NOTE
Au lieu de charger manuellement des fragments de code VCL personnalisés, vous pouvez ajouter des fragments de code dans le répertoire $MAGENTO_CLOUD_APP_DIR/var/vcl_snippets_custom de votre environnement. Les fragments de code de ce répertoire sont automatiquement chargés lorsque vous cliquez sur charger VCL vers Fastly dans l’administrateur Commerce. Voir Déploiement de fragments de code VCL personnalisés automatisé dans la documentation Fastly CDN pour Magento 2.

Modification du fragment de code VCL personnalisé

  1. Connectez-vous à l’administrateur.

  2. Cliquez sur Magasins > Paramètres > Configuration > Avancé > Système.

  3. Développez Cache de page complète > Configuration rapide > Fragments de code VCL personnalisés.

    Gérer des fragments de code VCL personnalisés

  4. Dans la colonne Action , cliquez sur l’icône des paramètres en regard de l’extrait de code à modifier.

  5. Après le rechargement de la page, cliquez sur Télécharger VCL vers Fastly dans la section Configuration Fastly .

  6. Une fois le transfert terminé, actualisez le cache en fonction de la notification dans la partie supérieure de la page.

WARNING
L’option d’interface utilisateur Fragments de code VCL personnalisés affiche uniquement les fragments de code ajoutés via l’administrateur Adobe Commerce. Si vous ajoutez des fragments de code à l’aide de l’API Fastly, utilisez l’API pour les gérer.

Suppression du fragment de code VCL personnalisé

  1. Connectez-vous à l’administrateur.

  2. Cliquez sur Magasins > Paramètres > Configuration > Avancé > Système.

  3. Développez Cache de page complète > Configuration rapide > Fragments de code VCL personnalisés.

    Gérer des fragments de code VCL personnalisés

  4. Dans la colonne Action, cliquez sur l’icône de corbeille en regard de l’extrait de code à supprimer.

  5. Dans la fenêtre modale suivante, cliquez sur DELETE et activez une nouvelle version.

WARNING
L’option d’interface utilisateur Fragments de code VCL personnalisés affiche uniquement les fragments de code ajoutés via l’administrateur Adobe Commerce. Si vous ajoutez des fragments de code à l’aide de l’API Fastly, utilisez l’API pour les gérer.
recommendation-more-help
05f2f56e-ac5d-4931-8cdb-764e60e16f26