Web攻击防护需分层设防:一、应用层堵代码漏洞,如参数化查询防SQL注入、HTML编码防XSS、Token校验防CSRF;二、服务器层收紧边界,如Nginx限方法与体大小、防火墙限连接;三、网络层用WAF+高防+CDN拦截恶意流量;四、持续运营包括日志分析、依赖扫描和渗透测试。

一、应用层:堵住代码里的漏洞入口
绝大多数高危攻击(如SQL注入、XSS、CSRF)都源于开发阶段的疏忽,防护必须从代码写起:
-
SQL注入:禁用字符串拼接SQL,强制使用参数化查询(如 PreparedStatement、ORM 的 safe query 方法)。哪怕输入是“
' OR '1'='1”,数据库也只当它是普通文本。 -
XSS:所有用户输入输出到 HTML 页面前,必须做 HTML 编码(如
<→);敏感 Cookie 标记为 <code>HttpOnly,阻止 JavaScript 读取;富文本场景用白名单过滤(只允许可信标签如<b>、<p>)。 - CSRF:关键操作(转账、改密、删数据)必须校验随机 Token(如 Spring Security 的 CSRF Token 或自定义 header + 后端比对),不能仅依赖 Cookie 自动携带。
二、服务器与中间件:收紧运行时边界
即使代码有瑕疵,系统层也能兜底:
宝塔面板11.3.0是一款针对Linux服务器设计的可视化管理工具,通过重构核心模块实现资源占用显著降低,尤其适合低配置服务器环境。它将复杂的命令行操作转化为直观的图形界面,帮助开发者快速完成网站部署、环境配置及日常运维工作,无需专业技术背景即可高效管理服务器。
- Web 服务器(Nginx/Apache)启用严格 MIME 类型检查、禁用不必要的 HTTP 方法(如 TRACE、OPTIONS);限制请求体大小(
client_max_body_size)、超时时间(keepalive_timeout)。 - 操作系统防火墙(iptables/firewalld)限制单 IP 连接数、禁用 ICMP 洪水、开启 SYN Cookie 防御 SYN Flood。
- 关闭调试接口(如 Spring Boot 的
/actuator生产环境暴露)、禁用目录浏览、隐藏服务器指纹(server_tokens off)。
三、网络层:用 WAF 和高防承接真实流量
把恶意流量挡在源站之外,是成本最低、见效最快的防线:
- 接入 Web 应用防火墙(WAF),开启 OWASP 规则集,自动识别并拦截 SQLi、XSS、路径遍历等常见攻击载荷。
- 若遭遇大规模 DDoS(尤其是流量型),需联动 DDoS 高防包:将域名解析指向 WAF,再由 WAF 回源至高防实例,最后转发到真实服务器。这样 WAF 处理应用层攻击,高防包清洗网络层洪水。
- CDN 是天然屏障,建议启用其 Bot 管理、速率限制、JS 挑战验证等功能,尤其对 CC 类攻击效果明显。
四、持续运营:让防护不变成摆设
安全不是一次配置,而是持续动作:
- 日志必须全量采集(访问日志、错误日志、WAF 日志),用 ELK 或类似工具做异常行为分析,比如某 IP 短时高频 POST /login。
- 定期扫描依赖组件(如 npm audit、pip-audit),及时升级存在 CVE 的库(如 Log4j、Spring Framework)。
- 每月执行一次最小化渗透测试(可用开源工具如 OWASP ZAP),重点验证登录、搜索、上传等高交互接口。

















