一、什么是WAF
- WAF全称为 ( Web Application Firewall ) 网络应用防火墙,是一种HTTP入侵检测和防御系统
- 传统的防火墙,处于网络分层的第三层或者第四层,用来过滤特定的ip地址和端口,而WAF则处于第七层应用层,可以看到应用层的报文内容。用来实现更加负责深入和细致的审核和过滤。
二、WAF能干啥
- IP 黑名单和白名单,拒绝黑名单上地址的访问,或者只允许白名单上的用户访问;
- URI 黑名单和白名单,与 IP 黑白名单类似,允许或禁止对某些 URI 的访问;
- 防护 DDoS 攻击,对特定的 IP 地址限连限速;
- 过滤请求报文,防御“代码注入”攻击;过滤响应报文,防御敏感信息外泄;
- 审计日志,记录所有检测到的入侵操作
三、WAF的工作原理
它就像是平时编写程序时必须要做的函数入口参数检查,拿到 HTTP 请求、响应报文,用字符串处理函数看看有没有关键字、敏感词,或者用正则表达式做一下模式匹配,命中了规则就执行对应的动作,比如返回 403/404。
其实使用Apache、Nginx、OpenResty,可以自己改改配置文件,写点 JS 或者 Lua 代码,就能够实现基本的 WAF 功能。
NginxIP黑名单功能举例
map $remote_addr $blocked {
default 0;
"1.2.3.4" 1;
"5.6.7.8" 1;
}
if ($blocked) {
return 403 "you are blocked.";
}
四、如何使用WAF
- 从云服务厂商购买使用
- 部署开源的产品 ModSecurity
版权归原作者 栗子叶 所有, 如有侵权,请联系我们删除。