O mecanismo de regras fornece uma interface gráfica para configure regras condicionais. Essas regras analisam os parâmetros da solicitação do usuário para determinar se uma configuração específica se aplica, oferecendo controle flexível e preciso sobre a aplicação das políticas de configuração do CDN DCDN.
Contexto
O console do CDN DCDN da Alibaba Cloud oferece recursos básicos, como a configuração de expiração de cache e a reescrita de parâmetros de busca na origem, que atendem à maioria dos requisitos gerais. No entanto, para necessidades especiais, como buscar solicitações cujo caminho contenha /example a partir de um endereço de origem específico, use o mecanismo de regras para implementar configurações personalizadas. Além disso, o CDN DCDN da Alibaba Cloud fornece o recurso EdgeScript, que permite personalização altamente flexível.
|
Capacidades |
Recursos básicos |
Recursos básicos e mecanismo de regras |
EdgeScript |
|
Implementação do recurso |
Configurações de uso geral |
Permite crie regras de filtragem condicional por meio de uma interface gráfica. Suporta vários tipos de correspondência, como URI, Header, Cookie e Query String, além de combinações lógicas AND/OR. |
Permite personalização altamente flexível e é adequado para cenários avançados que exigem scripts personalizados. |
|
Cenários |
Cenários de uso geral |
Cenários personalizados avançados |
Cenários totalmente personalizados |
|
Facilidade de uso (habilidades técnicas necessárias) |
Alta |
Média |
Baixa |
|
Flexibilidade de configuração |
Baixa |
Média |
Alta |
Lógica complexa e EdgeScript
O mecanismo de regras suporta combinações lógicas básicas AND/OR, sendo adequado para a maioria dos cenários de filtragem condicional. No entanto, os cenários a seguir podem ajudar a decidir quando usar o EdgeScript:
Correspondência complexa de expressões regulares: O operador de expressão regular no mecanismo de regras vem desativado por padrão. Envie um ticket para solicitar a ativação. Se precisar usar expressões regulares com frequência, o EdgeScript suporta nativamente a correspondência de expressões regulares, o que é mais prático.
Combinações multidimensionais precisas: configure avaliações complexas com vários critérios, como a correspondência do IP do cliente e do User-Agent com expressões regulares (por exemplo, bloquear solicitações de um intervalo de IP específico em que o User-Agent contenha uma palavra-chave específica), é trabalhoso no mecanismo de regras. O EdgeScript permite combinar várias condições de forma flexível por meio de lógica de script.
Controle granular de acesso IP para vários diretórios: O EdgeScript permite conceder acesso a diferentes diretórios para distintos intervalos de endereços IP. Por exemplo, permita que um intervalo de endereços IP acesse todos os diretórios, que um endereço IP específico acesse apenas um diretório e negue todos os outros endereços IP. Use
match_repara corresponder a endereços IP e caminhos de URI,return truepara permitir a solicitação eexit(403)para negá-la.
Limitações
É possível crie no máximo 50 condições de regra por nome de domínio.
Cada condição de regra pode conter no máximo 20 sub-regras.
Não use operadores de correspondência ou não correspondência de expressão regular ao configure condições de regra no console ou na openapi. No entanto, é possível visualize configurações existentes que utilizam esses operadores. Para usá-los, utilize o ESA.
Uma condição de regra pode ser referenciada no máximo cinco vezes em todos os recursos dentro de um único nome de domínio.
É possível aninhar condições de regra em até três níveis de profundidade, e cada nível pode ter suas próprias relações lógicas independentes.
Se um recurso, como defina o tempo de expiração de cache ou modifique cabeçalhos de solicitação de saída, referenciar uma condição de regra, a prioridade da condição determinará a ordem de execução, e não a ordem de configuração do recurso.
-
Os limites máximos de 50 condições de regra, 20 sub-regras e 3 níveis de aninhamento são rígidos e não admitem aumento mediante solicitação. Já o número total máximo de referências a condições de regra em todos os recursos de um único nome de domínio acelerado, que é 5 por padrão, admite aumento mediante solicitação.
Para aumentar o número total de vezes que as condições de regra podem ser referenciadas para um único nome de domínio (cinco por padrão), envie um ticket. Forneça as seguintes informações no ticket: o nome de domínio acelerado para o qual deseja aumentar o limite, o número-alvo de referências e uma descrição do seu cenário de negócios.
Ao adicionar outro nome de domínio acelerado, envie um ticket separado para aumentar o número de referências de condição de regra para esse domínio. O processo é o mesmo da primeira solicitação.
Cada condição pode ter no máximo 32 valores de correspondência para tipos de correspondência como IP do cliente, URI, extensão de arquivo, nome de arquivo e User-Agent. Se tiver uma lista de permissões de IP de cliente grande, consolide vários endereços IP em blocos CIDR (por exemplo,
120.209.XXX.X/24) para configure os endereços IP e conservar a capacidade de valores de correspondência.É possível configure no máximo 32 valores de correspondência de User-Agent. Os valores além desse limite são ignorados. Para corresponder a um grande número de User-Agents, use um curinga (
*) para consolidar valores de User-Agent semelhantes. Por exemplo,*Chrome*corresponde a todas as versões do navegador Chrome, ou use o EdgeScript para uma lógica de correspondência mais flexível.
Prioridade de recursos e lógica de execução
Ao configure o mecanismo de regras, considere as seguintes prioridades de recursos e lógica de execução:
A proteção contra hotlink de Referer tem precedência sobre o mecanismo de regras: Quando uma solicitação inclui um cabeçalho Referer, o sistema primeiro a avalia em relação à lista de bloqueios e à lista de permissões de Referer. Se a solicitação corresponder à lista de permissões, ela poderá prosseguir, ignorando o mecanismo de regras. Se a solicitação não corresponder à lista de permissões, o sistema a bloqueará imediatamente. Se o cabeçalho Referer estiver vazio, a solicitação ignora essa lógica e o mecanismo de regras a avalia.
Ordem de execução para recursos que usam condições de regra: Quando recursos como Expiração de Cache ou Modificar Cabeçalho de Solicitação de Saída usam condições de regra, o sistema os executa com base na prioridade de suas condições de regra associadas, e não na ordem de configuração dos recursos. Por exemplo, se a Expiração de Cache e a Reescrita de Parâmetro de Busca na Origem usarem condições de regra com prioridades diferentes, o sistema as executará em ordem de prioridade da condição de regra, da mais alta para a mais baixa.
-
Resolução de conflitos entre autenticação de URL e cache: Se encontrar um comportamento inesperado após configure a autenticação de URL, como solicitações acessíveis sem parâmetros de autenticação ou links válidos sendo bloqueados incorretamente, verifique o seguinte em ordem:
Verifique se há uma lista de permissões do WAF configurada. Uma lista de permissões do WAF pode ignorar a lógica de autenticação do CDN DCDN e permitir a passagem direta das solicitações.
Verifique se o recurso Ignorar Parâmetros de URL não remove os parâmetros de autenticação, como
auth_key. A configuração de ignorar parâmetros de URL filtra esses parâmetros e ignora a validação de autenticação para acertos de cache.confirme se a Regra de Chave de Cache não ignora o parâmetro de autenticação. Se ignorar, solicitações com parâmetros de autenticação diferentes podem receber o mesmo conteúdo em cache, o que ignora efetivamente a autenticação.
Sintaxe da condição de regra
Uma condição de regra combina uma ou mais expressões condicionais usando operadores lógicos. As seções a seguir descrevem a sintaxe.
Operadores lógicos
Os operadores lógicos avaliam condições no mesmo nível, incluindo conjuntos de condições aninhadas. Os operadores suportados são and e or.
and(AND): Um operador lógico AND. A correspondência só é bem-sucedida se todas as condições forem verdadeiras.or(OR): Um operador lógico OR. A correspondência é bem-sucedida se qualquer condição for verdadeira. Por exemplo, configure várias condições de regra para o mesmo cabeçalho de resposta permite adicionar o mesmo cabeçalho de resposta sob condições diferentes. Exemplo: Quando a URI contém/path-aor a URI contém/path-b, adicione o cabeçalho de resposta.
Parâmetros de uma expressão condicional
Uma expressão condicional, a unidade mais granular de uma regra, inclui os seguintes parâmetros:
|
Parâmetro |
Parâmetro de configuração correspondente na função condition para configuração de nome de domínio |
Descrição |
Obrigatório |
|
Correspondência condicional |
match |
Especifica a expressão de correspondência condicional. |
Sim |
|
Operador lógico |
logic |
Especifica o operador lógico para a expressão de correspondência condicional. Os valores válidos são |
Sim |
|
Critérios |
criteria |
Especifica a matriz de expressões condicionais a serem avaliadas. |
Sim |
|
Tipo de correspondência |
MatchType |
Especifica o tipo de informação em uma solicitação de cliente a ser correspondida. |
Sim |
|
Objeto de correspondência |
MatchObject |
Refina ainda mais o tipo de correspondência. Por exemplo, um endereço IP de cliente pode ser especificado como um IP de conexão POP ou um IP XFF. |
Não |
|
Operador de correspondência |
MatchOperator |
Especifica a comparação a ser realizada. |
Sim |
|
Valor de correspondência |
MatchValue |
O valor a ser comparado com os dados da solicitação do cliente. |
Sim |
|
Negar condição |
negate |
Indica se o resultado da expressão condicional deve ser negado. Os valores válidos são true e false. |
Sim |
|
Sensibilidade a maiúsculas e minúsculas |
caseSensitive |
Especifica se o valor de correspondência diferencia maiúsculas de minúsculas. |
Não |
|
Nome da condição de regra |
name |
Especifica o nome da condição de regra. |
Sim |
|
Status |
status |
Especifica o status da condição de regra. |
Sim |
Configuração de expressão condicional
Tipo de correspondência | Parâmetro de configuração correspondente na função condition para configuração de nome de domínio | Descrição | Objeto de correspondência | Operador de correspondência | Valor de correspondência | Sensibilidade a maiúsculas e minúsculas | Variável nginx/tengine correspondente |
Protocolo | scheme | O protocolo usado pela solicitação do cliente, como HTTP ou HTTPS. | Não aplicável |
|
| Não aplicável | $scheme |
Método de solicitação | method | O método usado na solicitação do cliente, como GET ou PUT. | Não aplicável |
|
| Não aplicável | $request_method |
URI (caminho) | uri | O caminho na URL da solicitação do cliente, excluindo quaisquer parâmetros de solicitação. Por exemplo: | Não aplicável |
| Os curingas |
| $raw_uri ou $uri |
Nome do arquivo | basename | O nome do arquivo solicitado pelo cliente. Por exemplo: name1. | Não aplicável |
| Os curingas |
| - |
Extensão de arquivo | extension | A extensão do arquivo solicitado pelo cliente. O sistema identifica a extensão como a substring do último ponto (.) até o final do nome do arquivo. Por exemplo: | Não aplicável |
| Os curingas |
| - |
Nome do host | hostname | O nome do host na solicitação do cliente. Ordem de correspondência: host na URL da solicitação > host no cabeçalho de solicitação Host. | Não aplicável |
| O host da solicitação do cliente. É possível inserir vários valores. |
| $host ou $http_host |
Endereço IP do cliente | clientip | O endereço IP do cliente. Há suporte para IPv4 (por exemplo, |
Nota Para obter mais informações sobre o IP de conexão POP e o IP XFF, consulte . |
| Há suporte para endereços IPv6, como 240e:XXX:3004:2:3:0:0:3f7, e blocos CIDR, como 120.209.XXX.XXX/31. É possível inserir vários valores. | Não aplicável | $remote_addr |
Versão do IP do cliente | clientipVer | A versão do IP do endereço do cliente: IPv4 ou IPv6. |
Nota Para obter mais informações sobre o IP de conexão POP e o IP XFF, consulte . |
|
| Não aplicável | - |
Provedor de service de Internet (ISP) | geolocation | O ISP ao qual o endereço IP do cliente pertence. |
Nota Para obter mais informações sobre o IP de conexão POP e o IP XFF, consulte . |
| Selecione um ISP na lista suspensa ou insira caracteres para filtrar as opções. Há suporte para pesquisa aproximada por ID ou nome. É possível inserir vários valores. | Não aplicável | $ip_isp_id |
Geolocalização de IP | geolocation | A localização geográfica do endereço IP do cliente. |
Nota Para obter mais informações sobre o IP de conexão POP e o IP XFF, consulte . |
| Selecione uma localização na lista suspensa ou insira caracteres para filtrar as opções. Há suporte para pesquisa aproximada por ID ou nome. É possível inserir vários valores. | Não aplicável | $ip_country_id |
Parâmetro de solicitação | querystring | Um parâmetro na URL da solicitação. | Insira o nome do parâmetro. |
| Os curingas |
| $arg_{name} |
Cabeçalho de solicitação | header | Um cabeçalho na solicitação do cliente. | Insira um nome de parâmetro ou selecione um parâmetro na lista suspensa. |
| É possível inserir vários valores. |
| $http_{name} |
Cookie | cookie | O cookie na solicitação do cliente. | Insira o nome do cookie. |
| Os curingas |
| $cookie_{name} |
User-Agent | useragent | O User-Agent no cabeçalho da solicitação. | Não aplicável |
| Selecione um valor na lista suspensa ou insira um valor de User-Agent, como |
| $http_user_agent |
Intervalo de porcentagem | range | Corresponde a uma porcentagem especificada de solicitações de cliente. | Não aplicável |
| Insira um valor de porcentagem. | Não aplicável | - |
Horário | time | O horário da solicitação do cliente, em UTC+8. Por exemplo, 09:10~14:22. | Não aplicável |
| Insira um intervalo de tempo, como 09:10~14:22, que representa o período das 09:10 às 14:22. | Não aplicável | - |
Variável Nginx | ngxvar | Use variáveis do Nginx se as variáveis anteriores não atenderem aos seus requisitos. Para obter uma lista de variáveis suportadas, consulte a documentação oficial do Nginx. | Selecione uma variável na lista suspensa ou insira um nome de variável. Há suporte para concatenação, como |
| É possível inserir vários valores. | Não aplicável | ${name} |
Notas comuns de configuração para expressões condicionais
Ponto inicial de correspondência de URI (caminho): Para correspondência de URI, o valor é a parte do caminho que começa com a primeira
/no caminho após o nome de domínio e exclui o nome de domínio e os parâmetros de solicitação. Por exemplo, para a solicitaçãohttps://example.com/path/file.html?key=value, o valor de URI realmente correspondido é/path/file.html. O valor de correspondência deve começar com/.Formato de correspondência de extensão de arquivo: Ao configure uma correspondência de extensão de arquivo, o valor de correspondência deve incluir um ponto (
.). Por exemplo, para corresponder a arquivos.txt, insira.txtem vez detxt; caso contrário, a correspondência pode falhar.-
Exemplos de uso de curingas: As correspondências de URI e extensão de arquivo suportam os curingas
?(corresponde a qualquer caractere único) e*(corresponde a qualquer número de caracteres). Exemplos comuns:/*.pdf: corresponde a todos os arquivos PDF no diretório raiz./api/*/data: corresponde a caminhos/api/que contêmdataem qualquer subcaminho..??: corresponde a todas as extensões de arquivo de dois caracteres, como.jse.ts.
Modo de verificação de endereço IP
O mecanismo de regras fornece dois modos de verificação de endereço IP. O modo selecionado afeta a forma como os POPs do CDN DCDN identificam o endereço IP do cliente:
IP de conexão POP: Este modo corresponde ao endereço IP que um cliente usa para se conectar a um POP do CDN DCDN. Se o tráfego entre o cliente e o POP do CDN DCDN passar por um servidor proxy, o IP de conexão POP será o endereço IP do servidor proxy.
IP XFF: Este modo corresponde ao endereço IP mais à esquerda no cabeçalho de solicitação x-forwarded-for. Independentemente do uso de um servidor proxy entre o cliente e o POP do CDN DCDN, o IP XFF é sempre o endereço IP real do cliente.
A escolha do modo de verificação depende de se uma solicitação de cliente passa por um servidor proxy antes de chegar a um POP do CDN DCDN.
Observe que o local em um POP do CDN DCDN onde um recurso referenciado por uma condição de regra entra em vigor também afeta a escolha do modo de verificação de endereço IP. Para recursos de busca na origem que entram em vigor em POPs L2, o POP L1 pelo qual a solicitação do usuário passa atua como um servidor proxy intermediário.
Exemplo: Suponha que o endereço IP real do cliente seja 10.10.10.10 e o endereço IP do proxy seja 192.168.0.1.
-
Sem um servidor proxy:
O valor do cabeçalho de solicitação x-forwarded-for é
10.10.10.10.O endereço IP real do cliente (o IP mais à esquerda no cabeçalho de solicitação x-forwarded-for) = o endereço IP usado para estabelecer a conexão entre o cliente e o POP do CDN DCDN =
10.10.10.10.
-
Com um servidor proxy:
O valor do cabeçalho de solicitação x-forwarded-for é
10.10.10.10,192.168.0.1.O endereço IP real do cliente (o IP mais à esquerda no cabeçalho de solicitação x-forwarded-for) =
10.10.10.10.O endereço IP usado para estabelecer a conexão entre o cliente e o POP do CDN DCDN = o endereço IP do servidor proxy =
192.168.0.1.O endereço IP real do cliente (o IP mais à esquerda no cabeçalho de solicitação x-forwarded-for) ≠ o endereço IP usado para estabelecer a conexão entre o cliente e o POP do CDN DCDN.
Em regiões específicas, um pequeno número de provedores de service de Internet (ISPs) pode atribuir endereços IP privados aos usuários finais. Como resultado, o nó do CDN DCDN recebe o endereço IP privado do usuário.
Os endereços IP privados se enquadram nos três intervalos a seguir:
Endereços IP privados Classe A:
10.0.0.0–10.255.255.255. Máscara de sub-rede:10.0.0.0/8.Endereços IP privados Classe B:
172.16.0.0–172.31.255.255. Máscara de sub-rede:172.16.0.0/12.Endereços IP privados Classe C:
192.168.0.0–192.168.255.255. Máscara de sub-rede:192.168.0.0/16.
Operadores de correspondência (matchOperator)
Operador | Parâmetro de configuração correspondente na função condition para configuração de nome de domínio | Descrição |
igual a | O matchOperator é definido como equals. | A condição é atendida apenas quando a variável é exatamente igual ou diferente do valor de correspondência especificado. |
diferente de | O matchOperator é definido como equals e o parâmetro negate é definido como true. | |
existe | O matchOperator é definido como exists. | A condição é atendida dependendo da existência da variável especificada na solicitação. |
não existe | O matchOperator é definido como exists e o parâmetro negate é definido como true. | |
contém qualquer um | O matchOperator é definido como contains. | A condição é atendida se a variável contiver (ou não contiver) qualquer um dos valores de correspondência especificados. Há suporte para no máximo 32 valores de correspondência. Há suporte para dois tipos de correspondência por inclusão:
|
não contém nenhum | O matchOperator é definido como contains e o parâmetro negate é definido como true. | |
maior que | O matchOperator é definido como gt. | Ou seja, |
menor que | O matchOperator é definido como lt. | Ou seja, |
maior ou igual a | O matchOperator é definido como ge. | Ou seja, |
menor ou igual a | O matchOperator é definido como le. | Ou seja, |
correspondência de expressão regular | O matchOperator é definido como regex. | Corresponde à variável a uma expressão regular. Nota Se configure regras no console ou pela openapi, não será possível usar esses operadores de expressão regular. No entanto, é possível visualize as configurações existentes. Para usar operadores de correspondência relacionados a expressões regulares, |
não correspondência de expressão regular | O matchOperator é definido como regex e o parâmetro negate é definido como true. |
Curingas
|
Curinga |
Descrição |
Exemplo de correspondência de caminho |
|
|
Corresponde a qualquer caractere único. |
|
|
|
Corresponde a zero ou mais caracteres. |
|
Recursos que suportam condições de regra
Categoria | Recurso |
Configuração básica | |
Configurações de cache | |
Configurações de origem | |
Controle de acesso | |
Otimização de desempenho | |
Configurações de vídeo | |
Limitação de tráfego |
Gerenciamento de configuração
Onde visualize as ações de execução: A página Rules Engine define apenas condições de regra. Ela não configure ações de execução diretamente. visualize e gerencie ações de execução específicas, como expiração de cache, reescrita de URL e limitação, na página do recurso que referencia a regra. Por exemplo, se uma configuração de expiração de cache referenciar uma condição de regra, visualize-a e modifique-a em Configurações de Cache > Expiração de Cache.
Remote Authentication não suporta condições de regra: O recurso de autenticação remota não pode referenciar condições de regra. Não use o mecanismo de regras para controlar o escopo em que a autenticação remota entra em vigor.
Tempo limite de autenticação: O Timeout do recurso Remote Authentication aceita no máximo 3000 milissegundos (3 segundos). O valor padrão é 500 milissegundos. 3000 milissegundos é o máximo aceito pelo sistema.
Casos de uso avançados
Implemente as seguintes configurações avançadas com o Mecanismo de Regras:
Limitação de taxa diferenciada: Para limitar a taxa de algumas solicitações, mas não de outras (por exemplo, limitar a taxa de URLs com parâmetros de autenticação, mas não de outras URLs), ou para configure uma taxa limite de fallback, crie condições de regra para distinguir as características da solicitação no módulo Rules Engine. Em seguida, em Limitação de Taxa para uma Única Solicitação, referencie as diferentes condições de regra e defina uma taxa limite diferente para cada uma.
Roteamento de origem canário baseado em IP: Para implementar uma versão canário com base em endereços IP de cliente ou rotear solicitações de IPs específicos para diferentes origens, crie uma condição de correspondência de IP no mecanismo de regras. Em seguida, referencie essa condição de regra em "Origem condicional" e especifique diferentes endereços de origem.
Recomendação de arquitetura de origem mista: Se precisar usar tanto o WAF quanto o OSS como origens, não configure diretamente várias origens primárias. Em vez disso, use o mecanismo de regras para crie condições de correspondência com base em caminhos de URL e, em seguida, especifique dinamicamente o endereço de origem para cada caminho em "Origem condicional" para evitar conflitos de origem entre várias origens.
Procedimento
Faça login no console do CDN.
No painel de navegação à esquerda, clique em Domain Names.
Na página Domain Names, encontre o nome de domínio de destino e clique em Manage na coluna Actions.
Na barra de navegação à esquerda do nome de domínio especificado, clique em Rules Engine.
Clique em Add Rule.
Na página Add Rule, defina Rule Name e Rule Content.
Clique em Submit para concluir a configuração.
Cenários típicos de configuração
As seções a seguir descrevem como implementar três cenários comuns de configuração.
Cenário 1: Controle de acesso de lista de permissões de IP e redirecionamentos fora da lista de permissões
Requisito: Permitir que apenas endereços IP especificados acessem o site e redirecionar automaticamente todos os outros endereços IP para uma página de manutenção.
Abordagem de configuração:
No módulo Rules Engine, crie uma condição de regra. defina o tipo de correspondência como Endereço IP do cliente, defina o operador de correspondência como não contém nenhum e insira os endereços IP da lista de permissões como os valores de correspondência.
Em "Configuração de cache" > "Reescrita de URL de acesso", referencie essa condição de regra e redirecione as solicitações correspondentes (ou seja, solicitações de endereços IP fora da lista de permissões) para a URL da página de manutenção especificada, como uma página HTML hospedada no OSS.
Notas:
Se as solicitações de endereços IP fora da lista de permissões retornarem 403 em vez de redirecionar, verifique se várias origens OSS causam um conflito de origem. Recomendamos mapear cada nome de domínio do CDN DCDN para apenas uma origem OSS primária.
Certifique-se de que a URL da página de manutenção seja publicamente acessível e não esteja bloqueada por outras regras de controle de acesso.
Comportamento padrão: Quando uma regra de lista de permissões de IP é associada a uma condição de correspondência de caminho de URI, a verificação da lista de permissões de IP se aplica apenas às solicitações correspondentes a esse caminho de URI; as demais solicitações são permitidas por padrão. Para aplicar o controle de acesso de IP a todos os caminhos, use o EdgeScript para escrever uma lógica personalizada.
Cenário 2: Proteção de Referer e controle de extensão de arquivo
Requisito: Restringir o acesso de Referer para arquivos com extensões especificadas, permitindo solicitações com um Referer vazio para arquivos com essas extensões.
Abordagem de configuração:
No módulo Rules Engine, crie uma condição de regra. defina o tipo de correspondência como Extensão de arquivo, defina o operador de correspondência como não contém nenhum e insira as extensões que deseja isentar, como
.pdf, como os valores de correspondência.Em "Controle de acesso" > "Proteção contra hotlink de Referer", referencie essa condição de regra. As solicitações para extensões diferentes das especificadas sofrem restrição pela lista de permissões ou lista de bloqueios de Referer, enquanto as solicitações com um Referer vazio para as extensões especificadas ficam isentas.
Cenário 3: Bloquear acesso a arquivos que não sejam de imagem e vídeo
Requisito: Um bucket do OSS é disponibilizado por meio da aceleração do CDN. Bloqueie o acesso a arquivos não relacionados a mídia, como .html, por meio de URLs maliciosas forjadas.
Abordagem de configuração:
No módulo Rules Engine, crie uma condição de regra. defina o tipo de correspondência como Extensão de arquivo, defina o operador de correspondência como contém qualquer um e insira
.html,.htm,.php,.asp,.jspcomo os valores de correspondência.Adicione uma condição de regra. defina o Tipo de Correspondência como "IP do Cliente", o Operador de Correspondência como "Não contém nenhum" e o Valor de Correspondência como os endereços IP da lista de permissões.
Em "Controle de acesso", referencie essa condição de regra e retorne 403 para solicitações correspondentes: solicitações de endereços IP fora da lista de permissões para arquivos que não sejam formatos de imagem ou vídeo especificados.
Nota (restrições de upload):
O mecanismo de regras do CDN limita apenas o acesso; não controla uploads. Para limitar os tipos de arquivo durante o upload, use a API PostObject do OSS e configure uma Política para restringir os tipos de arquivo. Por exemplo, defina starts-with $Content-Type image/ rejeita uploads de arquivos que não sejam de imagem, como .html. A API PutObject do OSS não verifica os tipos de arquivo e não bloqueia arquivos que não sejam de mídia durante o upload.