WAF拦截海外SQL注入XSS跨站恶意攻击,零基础配置教程
为什么你的网站需要拦截海外恶意攻击
很多站长发现网站后台经常出现大量来自海外的扫描请求,这些请求尝试通过SQL注入和XSS跨站脚本拿到数据库或用户信息。
如果服务器没有防御措施,轻则数据泄露,重则服务器被植入后门。
本文针对零基础用户,直接用宝塔面板内置的Nginx防火墙(免费版)实现WAF拦截海外SQL注入XSS跨站恶意攻击,不需要写复杂规则,跟着点鼠标就能搞定。
准备阶段:确保面板和防火墙插件就绪
- 服务器环境:需要一台安装了宝塔面板(Linux版)的服务器,操作系统不限。如果你还没安装宝塔,在SSH执行
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && bash install.sh(Ubuntu为例),按提示绑定账号。 - 安装Nginx防火墙:进入宝塔后台 -> 软件商店 -> 搜索“Nginx防火墙”,点击安装(免费版即可)。安装完成后刷新页面,左侧菜单会多出“防火墙”选项。
- 检查Nginx版本:防火墙依赖Nginx,确保你已经安装Nginx并且版本≥1.18。在软件商店查看已安装的Nginx版本,若过低可点击更新。
配置防火墙:开启SQL注入和XSS防护并拦截海外IP
1. 开启基本规则
进入宝塔后台 -> 防火墙 -> 全局配置。
在这里可以看到“SQL注入防御”和“XSS防御”开关,默认是开启的,但为了保险请确认它们处于“开”状态。
然后向下滚动到“常用规则”,确保“阻止常见扫描器”和“阻止恶意POST”也打开。
这些规则能挡住大部分已知攻击payload。
2. 拦截海外IP访问
在防火墙 -> 地区限制 中点击“添加规则”。
- 规则名称:例如“拦截海外所有IP”
- 地区选择:勾选“海外(除中国大陆)”(注意根据自己的受众调整,如果你的网站主要面向国内用户,可以添加;如果也面向海外用户,请不要全拦)。
- 动作:选择“拒绝访问”
- 生效范围:选择“所有站点”或只针对需要保护的站点。
点击保存。
这样来自海外IP的请求会被直接拒绝,不会进入后面的SQL注入和XSS检测。
3. 自定义防护规则(进阶)
如果默认规则还不够,可以添加自定义规则。
进入防火墙 -> 自定义规则 -> 添加规则。
例如针对常见SQL注入特征:
- 规则名:拦截union select
- 匹配类型:GET/POST参数
- 匹配内容:
union.*select - 动作:拒绝访问
同样可以添加针对XSS的规则:
1
服务中心