De forma predeterminada, el contenido que distribuye CDNDCDN
es público y cualquier persona con su URL puede acceder a él. Para proteger los recursos de origen contra accesos no autorizados y descargas malintencionadas, utilice la firma de URL junto con otros métodos de control de acceso, como la protección contra hotlinking por Referer y las listas de bloqueados o permitidos de IP. La firma de URL protege el contenido al validar la cadena cifrada y la marca de tiempo incluidas en una URL firmada.Funcionamiento
La firma de URL evita el acceso no autorizado a los recursos de origen mediante la coordinación de solicitudes entre los POP de Alibaba Cloud CDNDCDN y el origen. El proceso involucra tres componentes clave:
Servidor de aplicaciones de origen: genera una URL firmada con base en una regla de firma definida (que incluye el algoritmo y la clave) y la devuelve al cliente.
Cliente: envía la URL firmada a un POP de CDNDCDN para solicitar un recurso.
POP de CDNDCDN: valida la información de la URL firmada, como la cadena de firma y la marca de tiempo.
-
Los clientes de CDNDCDN configuran las reglas de generación de URL firmadas en el servidor de aplicaciones de origen. Estas reglas incluyen un algoritmo de firma y una clave.
Por ejemplo, una URL firmada puede tener el formato
http://DomainName/timestamp/md5hash/FileName. Cuando un cliente visita una página de la aplicación, el servidor de aplicaciones de origen genera una URL firmada con base en las reglas configuradas y la inserta en la página que se devuelve al cliente.
El cliente usa la URL firmada para solicitar el recurso a un POP de CDNDCDN.
-
El POP de CDNDCDN valida la información de la URL firmada, como la cadena de firma y la marca de tiempo, para determinar si la solicitud es legítima.
Si la autenticación falla, el POP rechaza la solicitud.
-
Si la autenticación es exitosa, el POP entrega el contenido.
NotaSi un nodo de CDNDCDN no tiene el recurso en caché, elimina los parámetros de autenticación de la URL firmada. De esta manera, restaura la URL original (por ejemplo,
http://DomainName/FileName) y la utiliza para generar una clave de caché o iniciar una solicitud de recuperación de origen.Una vez que CDNDCDN autentica la URL de la solicitud, codifica los caracteres especiales que contenga, como caracteres chinos u otros caracteres no ASCII.
Notas de uso
Después de configurar la firma de URL, las solicitudes con errores de autenticación aún pueden llegar a los nodos de CDNDCDN. Sin embargo, estos nodos las rechazan y devuelven un código de estado 403. Los registros de CDNDCDN siguen documentando estas solicitudes fallidas.
La firma de URL valida las solicitudes en los POP de CDNDCDN. Por lo tanto, interceptar solicitudes malintencionadas consume una pequeña cantidad de tráfico facturable. En el caso de solicitudes HTTPS, se aplican cargos adicionales porque los POP de CDNDCDN consumen recursos de procesamiento para interceptarlas.
Configurar y habilitar la firma de URL
Compruebe que haya configurado las reglas de generación de URL firmadas en el servidor de aplicaciones de origen, incluido el algoritmo de firma y la clave.
La lógica de firma de URL configurada en la consola de CDNDCDN debe coincidir con la del servidor de aplicaciones de origen.
Inicie sesión en la consola de CDN.
En el panel de navegación izquierdo, haga clic en Domain Names.
En la página Domain Names, busque el nombre de dominio de destino y haga clic en Manage dentro de la columna Actions.
En el panel de navegación del dominio, haga clic en Access Control.
Haga clic en la pestaña URL Signing.
En la sección URL Signing, haga clic en Modify.
-
Active el interruptor URL Signing y configure los parámetros.
Parámetro
Descripción
Type
Alibaba Cloud CDN ofrece cuatro métodos de firma. Seleccione un tipo de firma según el formato de sus URL firmadas para proteger eficazmente los recursos de origen. Están disponibles los siguientes tipos de firma de URL:
NotaSi la firma de URL falla, se devuelve un error 403:
Error de cálculo de MD5
Ejemplo:
X-Tengine-Error:denied by req auth: invalid md5hash=de7bfdc915ced05e17380a149bd760beError relacionado con la hora
Ejemplo:
X-Tengine-Error:denied by req auth: expired timestamp=1439469547
Primary Key
Introduzca la clave principal del método de firma. Debe tener entre 6 y 128 caracteres, y puede contener letras mayúsculas, letras minúsculas y dígitos.
Secondary Key
Introduzca la clave secundaria del método de firma. Debe tener entre 6 y 128 caracteres, y puede contener letras mayúsculas, letras minúsculas y dígitos. Especifique como mínimo una clave principal o secundaria.
TTL
Define el periodo de validez de la URL firmada. El cliente debe acceder al recurso dentro del lapso definido por la marca de tiempo más el TTL. Las solicitudes enviadas después de este periodo fallan la autenticación.
Unidad: segundos
Valores válidos: de 1 a 31536000
Valor predeterminado: 1800 (30 minutos)
Ejemplo: si el servidor de firmas genera una URL firmada a las 15:00:00 (UTC+8) del 15 de agosto de 2020 y el TTL es de 1800 segundos, la URL firmada caduca a las 15:30:00 (UTC+8) del mismo día.
Signature Parameter
Permite personalizar los nombres de los parámetros de firma. Esta opción solo aplica cuando el tipo de autenticación se establece en Method F.
Timestamp Parameter
Permite personalizar el nombre del parámetro de marca de tiempo. Esta opción solo surte efecto cuando el tipo de autenticación se establece en Type F.
Timestamp Format
Establece el formato de la marca de tiempo, que puede ser decimal (marca de tiempo Unix) o hexadecimal (marca de tiempo Unix). Este ajuste solo surte efecto cuando el tipo de autenticación se establece en Type F.
URL Encoding
El interruptor de codificación de URL está deshabilitado de forma predeterminada. Si lo habilita, se codifican las URL de las solicitudes de los usuarios. Esta función solo surte efecto cuando el tipo de autenticación se establece en Method F.
Rule Condition
Una condición de regla identifica diversa información de parámetros en una solicitud de usuario. Esto determina si una configuración surte efecto para dicha solicitud.
ImportanteCuando se hace referencia a condiciones de regla, estas se evalúan según la prioridad de las condiciones asociadas, no según el orden de configuración de la propia función.
Do not use: no utiliza ninguna condición de regla.
Para agregar o editar condiciones de regla, gestíonelas en Rules Engine.
Haga clic en OK.
Comprobar la URL firmada
Después de configurar la firma de URL, utilice el generador de URL firmadas (Signed URL Generator) en la consola de CDN para crear una y comprobar la implementación. Este proceso confirma que la lógica de firma del servidor es correcta.
-
En la sección Signed URL Generator, especifique la Original URL (Unencoded) y el resto de la información de firma.
Parámetro
Descripción
Original URL (Unencoded)
Introduzca la URL original completa; por ejemplo,
https://www.aliyun.com. La herramienta codifica automáticamente la URL original al generar la URL firmada.Type
Seleccione el tipo de firma de URL según los ajustes configurados en la sección Configure and enable URL signing.
Cryptographic Key
Introduzca la Primary Key o la Secondary Key que configuró en la sección Configure and enable URL signing.
TTL
Introduzca el TTL de la firma de URL en segundos, según los ajustes configurados en la sección Configure and enable URL signing.
Haga clic en Generate para obtener la Signed URL y la Timestamp.
Deshabilitar la firma de URL
Si deshabilita la firma de URL en la consola de CDNDCDN, pero las solicitudes de los clientes aún contienen parámetros de firma, CDNDCDN no podrá restaurar las URL de solicitud a su formato original. Esto provoca fallos de caché y redirige todas esas solicitudes al origen. Como resultado, el tráfico y los costos de origen aumentan significativamente. Por lo tanto, para deshabilitar por completo la firma de URL, elimine la configuración tanto del servidor de aplicaciones como de la consola de CDNDCDN.
En la sección URL Signing de la consola de CDN, haga clic en Modify y desactive el interruptor de firma de URL.
En el servidor de aplicaciones, elimine la lógica que agrega parámetros de firma a las URL de solicitud.