很多人以为:都叫“防火墙”,应该差不多。
但在真实攻击场景里:防火墙放行的流量,往往正是 WAF 必须拦住的攻击。
一句话先给结论:防火墙决定“能不能连上来”,WAF 决定“连上来后你在干什么”。
一个非常重要的生活类比:
把你的 网站 / Web 系统 想象成一栋办公楼。
防火墙(Firewall)= 小区门禁 + 保安
它主要关注这些问题:
• 你是不是“外来人员”(IP 地址)
• 你走的是不是“合法入口”(端口)
• 这个时间段允不允许你进(访问策略)
只要符合规则:
不管你进来想干什么,先放行再说。
WAF(Web Application Firewall)= 前台 + 安检 + 行为识别
WAF 不只看“你是谁”,更盯着:
• 你进来后 在点什么页面
• 你提交的表单 是不是很奇怪
• 你是不是在 疯狂试探系统漏洞
一旦行为异常:
即使你已经进楼了,也会被当场拦下。回到计算机世界:它们到底各自负责什么?
一、防火墙(Firewall)到底在“防”什么?
工作层级
• 网络层 / 传输层(IP / TCP / UDP)
核心判断依据
• 源 IP / 目标 IP
• 端口(80、443、22 等)
• 协议类型(TCP / UDP)
常见规则示例
允许 0.0.0.0/0 访问 443 拒绝某海外 IP 段访问 22
✅ 防火墙擅长解决的问题
“这条网络连接,能不能建立?”
❌ 防火墙做不到的事
• 看不懂 HTTP 参数
• 不理解 URL 含义
• 无法识别 SQL 注入、XSS
二、WAF(Web 应用防火墙)在“盯”什么?
工作层级
• 应用层(HTTP / HTTPS)
WAF 真正分析的内容
• URL 路径
• Query 参数
• POST Body
• Header(UA、Cookie 等)
WAF 能直接拦的攻击类型
• SQL 注入
• XSS(跨站脚本)
• 接口恶意调用 / 爆破
• 扫描器探测
• 异常参数 / 非法路径
WAF 关注的不是“你是谁”,而是 “你这次请求像不像攻击”。
三、用一张表彻底记住区别
对比维度 | 防火墙 | WAF |
工作层级 | 网络 / 传输层 | 应用层 |
看什么 | IP、端口、协议 | URL、参数、请求内容 |
防什么 | 非法连接 | Web 攻击 |
能否拦 SQL 注入 | ❌ | ✅ |
是否理解业务 | ❌ | ✅ |
Web 服务是否必须 | 不够 | 必须 |
四、正确做法
防火墙 + WAF,是“上下两道防线”
• 防火墙:缩小攻击面,不该进的别进
• WAF:识别攻击行为,进来乱搞的直接拦
这不是重复建设,而是分工协作。
最后一句话:防火墙守的是“门”,WAF 守的是“请求和行为”。只靠防火墙的 Web 服务,本质是“裸奔”。