腾讯云Web应用防火墙(WAF)对接与使用完全指南
1. 腾讯云WAF产品概述
腾讯云Web应用防火墙(Web Application Firewall,简称WAF)是一款针对Web应用层攻击的实时防护产品,致力于保护网站及API服务免受SQL注入、跨站脚本(XSS)、命令注入、WebShell上传、恶意扫描等OWASP TOP10类型攻击的侵害。WAF的核心工作原理是在客户端与源站服务器之间构建一道安全屏障,对所有HTTP/HTTPS请求进行实时检测与过滤,将恶意流量拦截在到达源站之前,仅将合法请求回源至后端服务器。
腾讯云WAF提供了两种产品形态,以满足不同业务场景的部署需求。第一种是SaaS型WAF,通过为防护域名分配CNAME地址,用户只需在DNS服务商处将域名解析记录修改为该CNAME,即可将全部Web流量牵引至WAF防护集群进行检测。这种方式无需调整源站架构,适用于腾讯云内外的各类Web业务,尤其适合希望快速上线防护的场景。第二种是云原生型WAF(也称负载均衡型WAF),通过与腾讯云七层负载均衡(CLB)监听器联动,对经过负载均衡的HTTP/HTTPS流量进行旁路威胁检测和清洗,实现业务转发与安全防护的分离。这种方式更适合已在腾讯云上使用CLB进行流量分发的用户,能够实现更低延迟的防护体验。
需要先登录腾讯云控制台,点击:腾讯云控制台,还没有账号,点击:注册后再关联,已有账号点击:登录后再关联
2. 购买WAF实例与前期准备
在使用腾讯云WAF之前,首先需要完成实例的购买。腾讯云WAF支持多实例购买,通过多实例管理可以适应不同业务线的隔离需求,也可通过多实例实现异地多活的业务统一就近接入防护。目前腾讯云WAF提供了包括高级版、企业版、旗舰版在内的多种套餐规格,不同版本在防护域名数量、QPS上限、带宽上限以及高级功能(如BOT管理、API安全等)方面存在差异。对于初次尝试的用户,腾讯云提供了SaaS型7天和负载均衡型30天的试用通道,无需信用卡即可零成本体验完整的防护能力。
在购买实例之后,需要提前梳理待防护网站的关键信息,包括:需要防护的完整域名(需保证域名合法且已完成ICP备案)、源站服务器的IP地址或源站域名、是否已使用CDN、高防或云加速等七层代理服务。如果源站部署在腾讯云CVM上,建议WAF与CVM部署在同一地域,以充分利用内网通信的低延迟优势。
3. SaaS型WAF接入配置
SaaS型WAF的接入流程相对简洁,核心步骤包括域名添加、DNS解析修改和源站安全组配置三个环节。
3.1 添加防护域名
登录Web应用防火墙控制台,在左侧导航栏顶部将控制台切换至实例所在区域(中国大陆或非中国大陆)。在左侧导航栏中选择“接入管理” > “域名接入”,进入域名接入页面后单击“添加域名”。在添加域名的表单中,需要填写以下关键参数:
- 域名:输入需要防护的完整域名,例如www.example.com。如需防护泛域名,可填写*.example.com。
- 代理情况:根据实际情况选择是否已使用了高防、CDN、云加速等代理服务。如果选择了“是”,WAF会通过HTTP头部中的X-Forwarded-For(XFF)字段获取客户端的真实IP地址。如果选择“否”,WAF则直接获取与WAF建立连接的IP地址作为客户端IP。
- 源站地址:根据实际需求选择IP或域名类型,填写源站服务器的地址。
- 源站端口:填写源站提供Web服务的端口号,通常为80(HTTP)或443(HTTPS)。
完成配置后单击确定,系统会为防护域名分配一个唯一的CNAME地址,例如09a10b6316608b648da8eec6fffeb59b.qcloudwzgj.com。在域名接入列表中可以看到该域名的防护状态、CNAME地址以及回源地址等信息。
3.2 修改DNS解析
域名添加完成后,需要到域名DNS服务商处将域名的解析记录修改为WAF分配的CNAME地址。如果域名托管在腾讯云DNS解析(DNSPod)中,登录云解析控制台,选择对应的域名,在解析设置中添加或修改CNAME记录,记录值填写WAF提供的CNAME地址。如果域名托管在其他DNS服务商(如阿里云DNS、Cloudflare等),操作原理相同,将域名的A记录或CNAME记录指向WAF的CNAME地址即可。
DNS解析生效后,所有访问该域名的HTTP/HTTPS请求将首先到达WAF防护集群,经过安全检测后再转发至源站服务器。建议配合安全组使用,在源站服务器的安全组中仅允许WAF的回源IP段访问源站的Web端口,避免攻击者绕过WAF直接攻击源站。
4. 云原生型WAF(CLB型)接入配置
云原生型WAF适用于已在腾讯云上使用七层负载均衡(CLB)进行流量分发的业务场景。其接入方式与SaaS型WAF有所不同,不需要修改DNS解析,而是通过将域名与CLB监听器进行绑定来实现流量接入。
4.1 前置条件确认
在配置云原生型WAF之前,需要确认CLB实例已经创建并配置了七层(HTTP/HTTPS)监听器。WAF支持公网和内网两种类型的CLB实例流量接入防护,但内网CLB实例的流量接入仅企业版及以上版本支持。同时,确保待防护的域名已完成ICP备案。
4.2 添加域名并绑定CLB
登录Web应用防火墙控制台,在左侧导航栏中选择“接入管理” > “域名接入”,单击“添加域名”。在添加域名页面中,需要配置以下参数:
- 所属实例:选择“云原生型”并选择对应的WAF实例名称。
- 域名:输入需要防护的域名,例如clb.technicalsupport.cn。
- 流量来源:选择“CLB”。
- 代理情况:根据是否使用了CDN、高防等代理服务进行选择。选择“是”时,WAF将通过XFF字段获取真实客户端IP。
- 国内地域:根据实际需求选择防护地域。
- 选择域名对应的负载均衡监听器:从下拉列表中选择已创建的CLB七层监听器进行绑定。
配置完成后单击确定,在域名接入页面即可查看到防护域名与负载均衡实例的ID、名称、防护模式和回源地址等信息。值得注意的是,云原生型WAF也支持为空监听器(即未绑定后端服务的监听器)配置域名接入,用于覆盖CLB实例的默认域名防护场景。
对于使用云原生网关(如TSE云原生网关)的用户,还可以通过对象接入的方式将网关实例直接接入WAF。在WAF控制台的“接入管理” > “对象接入”中,选择需要开启WAF防护的云原生网关实例,打开WAF开关即可。云原生网关支持服务级和路由级两种防护粒度,用户可以根据业务需要灵活选择。
5. WAF防护策略配置
完成域名接入后,网站的访问流量将经过WAF的检测与防护。WAF内置了多个防护检测模块,其中规则引擎默认开启,主要用于防御SQL注入、XSS跨站、WebShell上传等常见的Web应用攻击。其他防护模块需要用户手动开启和配置。
5.1 规则引擎配置
规则引擎是WAF最核心的防护模块,基于腾讯安全Web威胁和情报积累的专家规则集,自动防护OWASP TOP10类型的攻击。目前支持防护的攻击类型包括SQL注入、XSS攻击、恶意扫描、命令注入、Web应用漏洞、WebShell上传、木马后门、不合规协议等17类通用Web攻击。
规则引擎的配置路径为:登录WAF控制台,在左侧导航栏中选择“防护策略” > “基础安全”,在基础安全页面单击“WEB安全”标签,进入“规则引擎”页签。在规则引擎页面中,用户可以基于域名维度对单条规则进行启用或禁用操作,所有规则默认处于开启状态。规则按防护严格程度分为不同等级:超严格规则等级包含所有规则,严格规则等级包含正常和宽松规则,正常规则等级包含宽松规则。用户可以根据业务实际情况选择合适的规则等级。
当规则引擎产生误报时,可以通过配置白名单来放行特定请求。在规则引擎页签中,选择需要加白的规则,单击“加白名单”,在弹窗中配置需要加白的规则ID和URL路径。匹配方式支持完全匹配、前缀匹配和后缀匹配。白名单策略生效后,匹配该URL路径的请求将跳过对应规则的检测,有效解决业务误拦截问题。
5.2 CC防护配置
CC(Challenge Collapsar)攻击是一种针对Web应用资源耗尽型攻击,通过大量高频请求耗尽服务器资源。腾讯云WAF提供了CC防护规则,用于识别和拦截异常高频的访问请求。CC防护规则的配置同样在“防护策略” > “基础安全”页面中,选择目标域名后单击“CC防护”标签进行配置。用户可以根据业务特点自定义CC防护的触发阈值、统计周期和处置动作(如拦截、验证码挑战等)。
5.3 访问控制与自定义规则
除了预设的规则引擎外,WAF还支持用户自定义访问控制规则,实现更加灵活的防护策略。访问控制规则允许用户基于多种匹配条件对请求进行精细化的放行或拦截。配置路径为:在“防护策略” > “基础安全”页面中选择目标域名,单击“访问控制”标签,然后单击“添加规则”。
在添加自定义防护规则时,用户需要配置以下要素:
- 规则名称:为规则设置一个有意义的名称以便管理。
- 匹配字段:选择需要检测的请求特征,可选项包括来源IP、请求路径、请求方法、User-Agent、Referer、请求参数等。
- 逻辑符号:选择匹配逻辑,如“属于”、“包含”、“前缀匹配”、“后缀匹配”、“正则匹配”等。
- 匹配内容:填写具体的匹配值。
- 执行动作:选择匹配成功后的处置方式,包括放行、拦截、记录等。
例如,要禁止特定IP地址访问网站,可以配置一条匹配字段为“来源IP”、逻辑符号为“属于”、匹配内容为特定IP地址、执行动作为“拦截”的自定义规则。要保护后台管理路径/admin,可以配置匹配字段为“请求路径”、逻辑符号为“包含”、匹配内容为“/admin”、执行动作为“拦截”的规则。
5.4 BOT管理
BOT(机器人)流量管理是WAF的高级防护能力,用于识别和管理来自自动化程序(如爬虫、扫描器、撞库工具等)的访问请求。BOT防护规则支持用户自定义配置,可以基于请求频率、UA特征、IP信誉库等多维度信息识别BOT流量,并采取相应的处置措施。BOT管理功能通常在WAF企业版及以上版本中提供。
6. 日志分析与监控告警
6.1 攻击日志
WAF默认记录攻击日志,详细记录攻击产生的时间、攻击源IP、攻击类型及攻击详情等信息。攻击日志是安全运维人员分析威胁态势、调整防护策略的重要依据。攻击日志默认采用聚类展示方式,同一请求源IP上的同一类型攻击在指定时间内的日志会自动聚合为一条,有效减少运维工作量的同时提升工作效率。攻击日志支持全文搜索、模糊搜索和组合条件搜索等多种检索方式。腾讯云WAF在2025年8月上线了“攻击命中字段高亮”功能,能够自动将SQL注入、XSS、Log4j等攻击的命中片段标红加粗,并展示规则ID、命中位置、解码前后对比信息,帮助安全人员快速定位攻击向量。
6.2 访问日志
访问日志用于记录WAF防护域名的全量访问日志信息,在用户购买和开通日志服务后即可启用。访问日志提供了开启日志开关的域名在用户自定义保存天数内(最大180天)的访问日志记录、查询和下载功能,对于等保合规审计具有重要价值。访问日志的开启方式为:在WAF控制台的“接入管理” > “域名接入”页面中,选择所需域名,单击“更多” > “日志投递”进行配置。
6.3 TCOP告警配置
网站接入WAF防护后,可以通过腾讯云可观测平台(TCOP)配置告警策略,当WAF检测到攻击流量异常或业务流量异常时向运维人员发送告警通知。TCOP告警配置分为三个步骤:
步骤一:设置触发条件模板。登录腾讯云可观测平台控制台,在左侧导航中选择“告警管理” > “告警配置” > “触发条件模板”,单击“新建触发条件模板”。策略类型选择“Web应用防火墙”,WAF支持的监控指标包括访问次数、Web攻击数、CC攻击数、上下行带宽、QPS、BOT攻击数等。
步骤二:设置通知模板。在“告警管理” > “告警配置” > “通知模板”中新建通知模板。通知模板支持配置接收对象(接收组或接收人)、通知时段、接收渠道(邮箱、短信、微信、电话)以及接口回调地址。
步骤三:配置告警策略。在“告警管理” > “告警配置” > “告警策略”中新建策略。策略类型选择“Web应用防火墙”,告警对象可以选择特定的WAF实例、实例分组或全部对象,然后绑定已创建的触发条件模板和通知模板。配置完成后,当触发条件满足时,系统将自动通过设定的渠道发送告警通知。
7. 通过API和SDK进行编程式管理
腾讯云WAF提供了完整的API 3.0接口,支持用户通过编程方式管理WAF实例、防护域名、防护规则等资源。API调用需要使用腾讯云API密钥(SecretID和SecretKey),调用地址为waf.tencentcloudapi.com。
7.1 使用Python SDK
腾讯云官方提供了Python版本的WAF SDK。安装方式如下:
pip install tencentcloud-sdk-python-common
pip install tencentcloud-sdk-python-waf以下是一个使用Python SDK调用WAF API的示例,展示如何绑定域名到WAF实例:
from tencentcloud.common import credential
from tencentcloud.common.profile.client_profile import ClientProfile
from tencentcloud.common.profile.http_profile import HttpProfile
from tencentcloud.waf.v20180125 import waf_client, models
# 实例化认证对象
cred = credential.Credential("您的SecretId", "您的SecretKey")
# 实例化HTTP配置
httpProfile = HttpProfile()
httpProfile.endpoint = "waf.tencentcloudapi.com"
# 实例化客户端配置
clientProfile = ClientProfile()
clientProfile.httpProfile = httpProfile
# 实例化WAF客户端
client = waf_client.WafClient(cred, "ap-guangzhou", clientProfile)
# 构造请求对象
req = models.BindDomainRequest()
req.InstanceId = "waf-instance-id"
req.Domain = "www.example.com"
# 发起请求
resp = client.BindDomain(req)
print(resp.to_json_string())通过SDK,开发者可以实现WAF资源的自动化管理,例如在部署新业务时自动添加防护域名、在安全事件发生时通过API动态调整防护规则等。
7.2 使用TC CLI命令行工具
腾讯云还提供了命令行工具TC CLI,支持通过命令行方式调用WAF API。以下是一个使用TC CLI绑定域名的示例:
tccli waf BindDomain --InstanceId "waf-instance-id" --Domain "www.example.com"TC CLI特别适用于自动化运维脚本和CI/CD流水线中的安全配置环节。
8. WAF与其他云产品联动
8.1 WAF与CDN联动
当网站同时使用CDN加速和WAF防护时,正确的架构顺序应为:客户端 > CDN > WAF > 源站。具体配置方法为:首先在WAF控制台中添加防护域名,并将“代理情况”设置为“是”(因为流量经过了CDN代理)。然后登录CDN控制台,添加加速域名时,将回源地址填写为WAF为该域名分配的CNAME地址。最后在DNS服务商处将域名解析指向CDN提供的CNAME地址。在这种架构下,用户请求先经过CDN加速,再经过WAF安全检测,最后到达源站。WAF通过XFF头中的第一个IP地址获取真实的客户端IP。
8.2 WAF与DDoS高防联动
对于同时面临DDoS攻击和Web应用攻击双重威胁的业务,可以将DDoS高防与WAF联合部署。最佳部署架构为:客户端 > DDoS高防 > WAF > 负载均衡 > 源站。在这种架构中,将WAF提供的CNAME地址配置为DDoS高防的回源地址,即可实现网络层DDoS攻击清洗与应用层Web攻击检测的协同防护。
8.3 混合云WAF
对于部署在非腾讯云环境(如其他云平台或本地IDC)的Web业务,腾讯云WAF提供了混合云接入方案。混合云WAF通过SDK集成的方式,在统一接入网关上部署SDK插件,将业务流量复制一份到WAF防护集群进行检测,实现业务转发与检测的分离。混合云WAF的配置入口为:在WAF控制台左侧导航栏中选择“服务设置” > “混合云管理”,创建混合云集群后即可接入。
9. 最佳实践与成本优化
9.1 防护策略调优建议
WAF接入后的防护策略调优是一个持续的过程。建议遵循以下原则:第一,规则引擎保持默认开启,但需要根据业务实际情况调整规则等级——对业务敏感度较高的场景可使用“严格”等级,对兼容性要求较高的场景可使用“正常”等级。第二,定期review攻击日志,识别误报并配置白名单规则。第三,对于存在登录、注册、搜索等高频访问接口的业务,建议开启CC防护并配置合理的阈值。第四,如业务中存在大量API调用,建议启用BOT管理功能,识别并拦截恶意爬虫流量。
9.2 成本优化建议
腾讯云WAF采用按量计费或包年包月的计费模式。在成本控制方面,建议:根据业务的实际QPS和域名数量选择合适的套餐版本,避免过度采购。关注腾讯云不定期推出的优惠活动,例如开学季活动中SaaS企业版可低至1,999元/月。充分利用试用通道(SaaS型7天+负载均衡型30天)进行充分验证后再做采购决策。对于日志存储需求,合理设置日志保留天数(最大180天),在满足等保合规要求的同时控制存储成本。
9.3 安全运维建议
在日常安全运维中,建议定期(如每周)查看WAF总览页面,了解域名总数、已接入网站情况、最近30天的攻击流量分析数据等整体安全态势。配置TCOP告警策略,确保在攻击流量异常或业务流量异常时能够第一时间收到通知。对于安全事件响应,通过攻击日志的详细记录快速定位攻击源和攻击方式,及时调整防护策略。同时,定期检查WAF实例的开关状态——当WAF开关关闭后,所有防护功能将关闭并进入纯流量转发模式,且不会记录日志,需特别注意。
10. 总结
腾讯云Web应用防火墙通过SaaS型和云原生型两种产品形态,为不同架构的Web业务提供了灵活的安全防护接入方案。从实例购买、域名接入、DNS解析配置,到规则引擎调优、CC防护、访问控制等策略设置,再到攻击日志分析、TCOP告警配置,以及通过API/SDK实现的自动化管理,WAF形成了完整的Web安全防护闭环。通过与CDN、DDoS高防等产品的联动部署,可以构建纵深防御的Web安全体系。在实际使用中,建议用户根据业务特点选择合适的接入方式、持续优化防护策略、合理配置告警机制,在保障业务安全的同时实现成本的有效控制。





