Bloquear spam de referencia
El siguiente ejemplo muestra cómo configurar Fastly Edge Dictionary con un fragmento de VCL personalizado para bloquear el correo no deseado de referencia de su Adobe Commerce en el sitio de infraestructura de la nube.
Requisitos previos:
-
Su entorno debe configurarse para utilizar Fastly CDN. Consulte Configurar servicios de Fastly.
-
Asegúrese de que está ejecutando la última versión del módulo Fastly CDN para el Magento 2. Consulte Actualizar el módulo de Fastly.
-
Compruebe la configuración del entorno para el servicio de Fastly. Ver Comprobar el almacenamiento en caché de Fastly.
-
Debe tener credenciales de administrador para acceder a los entornos de ensayo y producción.
-
Revise los registros del sitio para ver si hay direcciones URL de referencia falsas y haga una lista de dominios para bloquear.
Creación de una lista de bloqueados de referente
Los diccionarios de Edge crean pares de clave-valor accesibles para las funciones VCL durante el procesamiento de fragmentos VCL. En este ejemplo, se crea un diccionario de Edge que proporciona la lista de sitios web de referencia que se van a bloquear.
-
Inicie sesión en el administrador.
-
Haga clic en Tiendas > Configuración > Configuración > Avanzado > Sistema.
-
Expandir Caché de página completa > Configuración rápida > diccionarios de Edge.
-
Cree el contenedor Diccionario:
-
Haga clic en Agregar contenedor.
-
En la página Contenedor, escriba un nombre de diccionario—
referrer_blocklist
. -
Seleccione Activar después del cambio para implementar los cambios en la versión de la configuración del servicio de Fastly que está editando.
-
Haga clic en Cargar para adjuntar el diccionario a la configuración del servicio de Fastly.
-
-
Agregue la lista de nombres de dominio para bloquear al diccionario
referrer_blocklist
:-
Haga clic en el icono Configuración para el diccionario
referrer_blocklist
. -
Agregue y guarde pares de clave-valor en el nuevo diccionario. Para este ejemplo, cada clave es el nombre de dominio de una URL de referente que se va a bloquear y valor es
true
. -
Haga clic en Cancelar para volver a la página de configuración del sistema.
-
-
Haga clic en Guardar configuración.
-
Actualice la caché según la notificación que aparece en la parte superior de la página.
Para obtener más información acerca de los diccionarios de Edge, consulte Creación y uso de diccionarios de Edge y fragmentos personalizados de VCL en la documentación de Fastly.
Cree un fragmento de VCL personalizado para bloquear el correo no deseado del referente
El siguiente código de fragmento de VCL personalizado (formato JSON) muestra la lógica para comprobar y bloquear solicitudes. El fragmento de VCL captura el host de un sitio web de referente en un encabezado y, a continuación, compara el nombre de host con la lista de direcciones URL del diccionario referrer_blocklist
. Si el nombre de host coincide, la solicitud se bloquea con un error 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\"; }"
}
Antes de crear un fragmento basado en este ejemplo, revise los valores para determinar si necesita realizar algún cambio:
-
name
: nombre del fragmento de VCL. Para este ejemplo, usamosblock_bad_referrer
. -
dynamic
— El valor 0 indica que hay un fragmento normal que cargar en el VCL con versiones para la configuración de Fastly. -
priority
— Determina cuándo se ejecuta el fragmento de VCL. La prioridad es5
para ejecutar este código de fragmento antes de que cualquiera de los fragmentos de VCL de Magento predeterminados (magentomodule_*
) tenga asignada una prioridad de 50. Establezca la prioridad de cada fragmento personalizado por encima o por debajo de 50, según el momento en el que desee que se ejecute el fragmento. Los fragmentos con números de prioridad más bajos se ejecutan primero. -
type
— especifica una ubicación para insertar el fragmento de código en la versión de VCL. En este ejemplo, el fragmento VCL es un fragmentorecv
. Cuando el fragmento se inserta en la versión de VCL, se agrega a la subrutinavcl_recv
, debajo del código VCL predeterminado de Fastly y encima de cualquier objeto. -
content
: fragmento de código VCL que se ejecutará en una línea, sin saltos de línea.
Después de revisar y actualizar el código para su entorno, utilice cualquiera de los siguientes métodos para agregar el fragmento de VCL personalizado a la configuración del servicio de Fastly:
-
Agregar el fragmento de VCL personalizado del administrador. Se recomienda utilizar este método si puede acceder al administrador. (Requiere Fastly versión 1.2.58 o posterior).
-
Guarde el ejemplo de código JSON en un archivo (por ejemplo,
allowlist.json
) y cárguelo mediante la API de Fastly. Utilice este método si no puede acceder al administrador.
Añadir el fragmento de VCL personalizado
-
Inicie sesión en el administrador.
-
Haga clic en Tiendas > Configuración > Configuración > Avanzado > Sistema.
-
Expandir Caché De Página Completa > Configuración Rápida > Fragmentos De VCL Personalizados.
-
Haga clic en Crear fragmento personalizado.
-
Añada los valores de fragmento de VCL:
-
Nombre —
block_bad_referrer
-
Tipo —
recv
-
Prioridad —
5
-
VCL contenido de fragmento —
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"; }
-
-
Haga clic en Crear.
-
Después de que la página se vuelva a cargar, haz clic en Cargar VCL a Fastly en la sección Configuración de Fastly.
-
Una vez finalizada la carga, actualice la caché según la notificación que aparece en la parte superior de la página.
Valida rápidamente la versión de VCL actualizada durante el proceso de carga. Si la validación falla, edite el fragmento de VCL personalizado para solucionar cualquier problema. A continuación, vuelva a cargar la VCL.
$MAGENTO_CLOUD_APP_DIR/var/vcl_snippets_custom
de su entorno. Los fragmentos de este directorio se cargan automáticamente al hacer clic en cargar VCL a Fastly en el administrador de Commerce. Consulte Implementación de fragmentos de VCL personalizados automatizados en el módulo Fastly de CDN para obtener documentación de Magento 2.Modificación del fragmento de VCL personalizado
-
Inicie sesión en el administrador.
-
Haga clic en Tiendas > Configuración > Configuración > Avanzado > Sistema.
-
Expandir Caché De Página Completa > Configuración Rápida > Fragmentos De VCL Personalizados.
-
En la columna Acción, haga clic en el icono de configuración situado junto al fragmento que desea editar.
-
Después de que la página se vuelva a cargar, haz clic en Cargar VCL a Fastly en la sección Configuración de Fastly.
-
Una vez finalizada la carga, actualice la caché según la notificación que aparece en la parte superior de la página.
Eliminar el fragmento de VCL personalizado
-
Inicie sesión en el administrador.
-
Haga clic en Tiendas > Configuración > Configuración > Avanzado > Sistema.
-
Expandir Caché De Página Completa > Configuración Rápida > Fragmentos De VCL Personalizados.
-
En la columna Acción, haga clic en el icono de papelera situado junto al fragmento que desea eliminar.
-
En la siguiente ventana modal, haz clic en DELETE y activa una nueva versión.