参考资料

  1. “回源协议和端口”决定了 ESA 边缘节点向你的源站服务器发起请求时,用 HTTP 还是 HTTPS,以及连到哪个端口。
  2. HTTP/2 和 HTTP/3 是给访客用的,HTTP/2 回源是给源站用的
  3. 开启 HSTS 后,可以减少第一次访问被劫持的风险,ESA 将响应 HSTS 头部:Strict-Transport-Security。
  4. 针对“流氓”爬虫,核心策略是 “拒绝礼貌,直接开火”。robots.txt 对它们形同虚设,必须在 Nginx 或 ESA 层面主动拦截。
  5. 阿里云 ESA(边缘安全加速)的“托管 DCV”功能。
  6. “回源协议和端口”决定了 ESA 边缘节点向你的源站服务器发起请求时,用 HTTP 还是 HTTPS,以及连到哪个端口。
  7. 阿里云 ESA 的 SNI 白名单功能的核心机制
  8. 强制校验源站服务器返回的 SSL/TLS 证书是否合法有效

“边缘清洗 + 源站隐身 + Nginx 兜底” 三层纵深

针对 Fresns 的防攻击,核心是 “边缘清洗 + 源站隐身 + Nginx 兜底” 三层纵深。你的 PHP 8.3 进程很宝贵,必须在请求打到它之前就把攻击拦下来。

☁️ ESA 边缘防护(第一道闸)

这是最有效的一层,依托阿里云全球节点清洗流量。

  • DDoS 基础防护:ESA 默认开启,可抵御不高于 10 Gbps 的流量攻击。

  • 智能限频:根据站点过去 7 天的访问基线自动计算频次上限,有效防止突发 CC 攻击。

  • Bot 管理:将“绝对是 Bot”执行拦截,“可能是 Bot”设为观察,避免误伤正常用户。

🛡️ 源站隐身(让攻击者找不到 IP)

这是防攻击的生命线。如果攻击者直接拿到你的服务器 IP,ESA 的防护就形同虚设。

  • 开启 ESA 源站防护:在 ESA 控制台开启后,系统会给出收敛后的回源节点 IP 列表。将这些 IP 段添加到你源站防火墙(如 ECS 安全组)的白名单中,拒绝其他所有公网 IP 直接访问。

  • 关键提醒:务必确保 access.log 里的 $remote_addr 不再是攻击者的真实 IP,而是 ESA 节点 IP,说明流量确实走了 ESA。

⚙️ Nginx 源站兜底(最后防线)

万一有请求穿透,在 Nginx 层做最后挣扎,保护 PHP-FPM。

  • 限制连接数与频率:在 http 块定义共享内存区,防止单 IP 耗尽并发。

    limit_conn_zone $binary_remote_addr zone=perip:10m;
    limit_req_zone $binary_remote_addr zone=perreq:10m rate=10r/s;

    在 server 块应用:

    limit_conn perip 10;
    limit_req zone=perreq burst=20 nodelay;
  • 隐藏版本号与敏感路径:添加 server_tokens off;,并拒绝访问 .git、.env 等敏感文件。

💡 排查建议

如果你发现 ESA 拦截规则似乎不生效,首先去 Nginx 的 access.log 里看 $remote_addr。如果是攻击者的真实 IP,说明流量绕过了 ESA 直接打到了源站,必须立刻配置源站白名单。

如果你有具体的攻击日志特征(如特定的恶意 UA 或 Referer),可以发出来,我帮你写针对性的 ESA 拦截规则。

作者:王壹杰
时间:2026-09-28 12:11:07
来源:https://yun.ciilii.com/