Artigo Diretório
Quando a sua lista de regras de firewall atinge milhares de entradas, excluí-las manualmente torna-se como contar grãos de areia no deserto — demorado e trabalhoso.
Nesse ponto, os scripts automatizados se tornam uma verdadeira salvação.
Por que são necessárias regras de limpeza automática?
Em uso Cloudflare 作为 CDN 和 WAF 的过程中,我们经常会设置 Regras de acesso IP Para bloquear solicitações maliciosas.
Essas regras podem incluir comentários, como por exemplo: Bloqueado por AIB ”,Sincronização do Wordfence 或 "O endereço IP do atacante é conhecido".
O número de regras aumentará rapidamente com o tempo.
Se não forem organizadas, as regras no console irão se acumular, afetando a eficiência da gestão.
Para piorar a situação, o console do Cloudflare não oferece um recurso de "exclusão em lote com um clique por comentário".
Isso significa que você só pode selecioná-los e excluí-los manualmente, um por um, o que é extremamente ineficiente.
Solução
Para resolver esse problema, podemos usar API REST da Cloudflare.
Ao ligar firewall/access_rules/rules Interfaces e scripts podem:
- Obter paginaçãoTodas as regras sob o domínio atual.
- Comentários correspondentesPalavras-chave na área.
- Iniciar automaticamente uma solicitação DELETERegras de destino para limpeza em lote.
Este método não só é eficiente, como também evita erros humanos.

Trabalho preparatório
Antes de começar a escrever o roteiro, você precisa preparar alguns parâmetros importantes.
1. Token da API
Vamos para Página de tokens da API do Cloudflare Criar um novo token.
É necessário conceder as seguintes autorizações:Zona → Serviços de Firewall → Editar.
2. ID da Zona
Faça login no console do Cloudflare e acesse as configurações do seu domínio... Página de visão geralVocê pode encontrar o ID da Zona de 32 dígitos à direita.
3. Instale as bibliotecas de dependência.
Execute no PowerShell ou no terminal:
python -m pip install requests
Isso permitirá que você o instale. requests A biblioteca garante que o script possa chamar a API corretamente.
Script Python completo
Abaixo segue um script Python pronto para uso.
Salvar como cloudflare_clean.pySubstituir API_TOKEN 和 ZONE_ID É isso aí.
import requests
API_TOKEN = "你的_API_TOKEN"
ZONE_ID = "你的_ZONE_ID"
TARGET_NOTE = "Blocked by AIB"
headers = {
"Authorization": f"Bearer {API_TOKEN}",
"Content-Type": "application/json",
}
def delete_matching_ip_rules_zone():
page = 1
deleted_count = 0
while True:
url = f"https://api.cloudflare.com/client/v4/zones/{ZONE_ID}/firewall/access_rules/rules?page={page}&per_page=100"
response = requests.get(url, headers=headers)
if response.status_code != 200:
print(f"请求失败: {response.text}")
break
data = response.json()
rules = data.get("result", [])
if not rules:
break
for rule in rules:
rule_id = rule.get("id")
rule_value = rule.get("configuration", {}).get("value")
rule_notes = rule.get("notes", "")
if TARGET_NOTE in rule_notes:
del_url = f"{url}/{rule_id}"
del_res = requests.delete(del_url, headers=headers)
if del_res.json().get("success"):
print(f"✅ 删除成功: {rule_value}")
deleted_count += 1
result_info = data.get("result_info", {})
total_pages = result_info.get("total_pages", 1)
if page >= total_pages:
break
page += 1
print(f"清理完成,共删除 {deleted_count} 条规则。")
if __name__ == "__main__":
delete_matching_ip_rules_zone()
Execute o script
Digite o seguinte no terminal:
python /path/to/cloudflare_clean.py
O script irá procurar e excluir automaticamente as regras com os comentários especificados.
Guia de Perguntas Frequentes e Solução de Problemas
1. Permissões de Zona vs. Permissões de Conta
- Regras de nível de zona: aplicam-se apenas a um único domínio.
- Regras ao nível da conta: aplicam-se à conta inteira; exigem a modificação do caminho da API.
/accounts/{ACCOUNT_ID}/....
2. Relatório de erros de autenticação
Se aparecer 403 Authentication errorIsso geralmente ocorre devido a uma configuração incorreta do escopo de permissões.
Certifique-se de que a permissão do token inclua Serviços de firewall → Editar.
3. Mecanismo de paginação
A API do Cloudflare retorna no máximo 100 regras por vez.
O script passa result_info.total_pages A virada automática de páginas garante uma digitalização completa.
Por que a automação é uma escolha inevitável
Em um ambiente de produção real, o número de regras pode facilmente exceder [um determinado limite]. 5000º.
A exclusão manual não só consome muito tempo, como também está sujeita a omissões.
Com scripts de automação, você pode:
- Regras expiradas são removidas diariamente.
- Mantenha sua lista de regras de firewall organizada.
- Para evitar o banimento acidental de usuários legítimos.
Essa abordagem torna o gerenciamento de segurança do site mais eficiente.
A documentação oficial da Cloudflare afirma claramente:
"A API fornece acesso programático para gerenciar regras de firewall, incluindo criação, listagem e exclusão."
来源:Documentação da API do Cloudflare
Isso indica que a API oficial foi disponibilizada, mas a função de exclusão em lote ainda não foi implementada no console.
Conclusão
No mundo da segurança da informação, eficiência é defesa.
Ao chamar a API do Cloudflare por meio de scripts Python, não apenas superamos as limitações do console, como também inauguramos uma era de automação para o gerenciamento de regras de firewall.
这是一种 A combinação de tecnologia e sabedoriaEssa também é uma tendência inevitável nas operações de segurança de sites.
Os verdadeiros mestres não passam os dias clicando com o mouse no console; eles usam código para fazer com que as máquinas realizem o trabalho tedioso por eles.
Então vamos agir.
Faça com que as regras do seu firewall funcionem como um relógio preciso, e não como uma confusão de dados digitais.
A essência da segurança é a ordem. E por trás da ordem está a automação.
Hope Chen Weiliang Blog ( https://www.chenweiliang.com/ O artigo "Como limpar automaticamente em lote as regras de acesso IP com comentários específicos no WAF usando a API do Cloudflare + Python", compartilhado aqui, pode ser útil para você.
Bem-vindo a compartilhar o link deste artigo:https://www.chenweiliang.com/cwl-34436.html
