Artikkelkatalog
Når regellisten for brannmuren din svulmer opp til tusenvis av oppføringer, er det å slette dem manuelt som å telle sandkorn i ørkenen – tidkrevende og smertefullt.
På dette tidspunktet blir automatiserte skript en livredder.
Hvorfor er det behov for automatiske oppryddingsregler?
Når vi bruker Cloudflare som et CDN og WAF, konfigurerer vi ofte IP-tilgangsregler for å blokkere ondsinnede forespørsler.
Disse reglene kan inneholde merknader som «Blokkert av AI B» , «Wordfence Sync» eller «Kjent angripers IP-adresse».
Antall regler vil øke raskt over tid.
Hvis det ikke ryddes opp, vil reglene i konsollen hope seg opp, noe som påvirker administrasjonseffektiviteten.
For å gjøre vondt verre, tilbyr ikke Cloudflare-konsollen en funksjon for «sletting av batch med ett klikk via kommentar».
Dette betyr at du bare kan velge og slette dem manuelt én etter én, noe som er ekstremt ineffektivt.
Løsning
For å løse dette problemet kan vi bruke Cloudflare REST API.
Ved å ringe firewall/access_rules/rules Grensesnitt og skript kan:
- Hent pagineringAlle regler under gjeldende domene.
- Samsvarende kommentarerNøkkelord i feltet.
- Start en DELETE-forespørsel automatiskRegler for mål for batchopprydding.
Denne metoden er ikke bare effektiv, men unngår også menneskelige feil.

Forberedende arbeid
Før du begynner å skrive manuset, må du forberede flere viktige parametere.
1. API-token
Gå til Cloudflare API-tokens-siden for å opprette en ny token.
Tillatelser må gis: Sone → Brannmurtjenester → Rediger.
2. Sone-ID
Logg inn på Cloudflare-konsollen, gå til oversiktssiden for domenet ditt , og du finner den 32-sifrede sone-ID-en til høyre.
3. Installer avhengighetsbiblioteker
Kjør i PowerShell eller terminalen:
python -m pip install requests
Dette vil tillate deg å installere den. requests Biblioteket sørger for at skriptet kan kalle API-et riktig.
Komplett Python-skript
Nedenfor er et Python-skript som er klart til bruk.
Lagre som cloudflare_clean.pyErstatt API_TOKEN Og ZONE_ID OK.
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()
Kjør skriptet
Skriv inn følgende i terminalen:
python /path/to/cloudflare_clean.py
Skriptet vil automatisk skanne etter og slette regler med spesifiserte kommentarer.
Ofte stilte spørsmål og feilsøkingsguide
1. Sone vs. kontotillatelser
- Regler på sonenivå: gjelder kun for ett enkelt domene.
- Regler på kontonivå: Gjelder for hele kontoen; krever endring av API-banen.
/accounts/{ACCOUNT_ID}/....
2. Rapportering av autentiseringsfeil
Hvis det vises 403 Authentication errorDette skyldes vanligvis en feil innstilling for tillatelsesomfang.
Sørg for at token-tillatelsen inkluderer Brannmurtjenester → Rediger.
3. Pagineringsmekanisme
Cloudflare API returnerer maksimalt 100 regler om gangen.
Skriptet går result_info.total_pages Automatisk sidevending sikrer en fullstendig skanning.
Hvorfor automatisering er et uunngåelig valg
I et reelt produksjonsmiljø kan antallet regler lett overstige 5000.
Manuell sletting er ikke bare tidkrevende, men også utsatt for utelatelser.
Med automatiseringsskript kan du:
- Utløpte regler slettes daglig.
- Hold listen over brannmurregler ryddig.
- For å unngå å feilaktig utestenge legitime brukere.
Denne tilnærmingen gjør sikkerhetsadministrasjonen for nettstedet mer effektiv.
Den offisielle Cloudflare-dokumentasjonen sier tydelig:
"API-et gir programmatisk tilgang til å administrere brannmurregler, inkludert oppretting, oppføring og sletting."
来源:Cloudflare API-dokumentasjon
Dette indikerer at det offisielle API-et er levert, men funksjonen for sletting av batcher er ikke implementert i konsollen.
Konklusjon
I informasjonssikkerhetens verden er effektivitet forsvar.
Ved å kalle Cloudflare API gjennom Python-skript, overvant vi ikke bare begrensningene i konsollen, men innledet også en æra med automatisering for administrasjon av brannmurregler.
Dette er en kombinasjon av teknologi og visdom , og en uunngåelig trend innen nettstedssikkerhet.
Sanne mestere bruker ikke dagene sine på å klikke med musen i konsollen; de bruker kode for å få maskiner til å gjøre det kjedelige arbeidet for dem.
Så la oss gjøre noe.
Sørg for at brannmurreglene dine fungerer som en presis klokke, ikke et virvar av rotete digitalt søppel.
Essensen av sikkerhet er orden. Og bak orden ligger automatisering.
Forhåpentligvis vil artikkelen «Slik rydder du automatisk opp i IP-tilgangsregler med spesifiserte kommentarer i WAF ved hjelp av Cloudflare API + Python» som er delt på Chen Weiliangs blogg ( https://www.chenweiliang.com/ ) være nyttig for deg.
Del gjerne lenken til denne artikkelen: https://www.chenweiliang.com/cwl-34436.html
