#!/usr/bin/env python ''' Copyright (C) 2020, WAFW00F Developers. See the LICENSE file for copying permission. ''' NAME = 'Cloudflare (Cloudflare Inc.)' def is_waf(self): # 定义用于检测是否存在特定 Web 应用防火墙(WAF)的方案列表。 schemes = [ # 检查响应头中的 'server' 字段是否为 'cloudflare'。 self.matchHeader(('server', 'cloudflare')), # 检查响应头中的 'server' 字段是否为 'cloudflare-nginx' 或 'cloudflare_nginx'。 self.matchHeader(('server', r'cloudflare[-_]nginx')), # 检查响应头中的 'cf-ray' 字段是否存在且其值不为空。 self.matchHeader(('cf-ray', r'.+?')), # 检查 Cookie 中是否存在 '__cfduid'。 self.matchCookie('__cfduid') ] # 如果方案列表中的任何一个方案为真,则认为检测到了 WAF。 if any(i for i in schemes): return True else: return False