安全防御、严格输入校验与请求限流 (Rate Limiting)
通过基于 Redis 的高性能防御算法,保护您的在线商城免受分布式拒绝服务攻击(DDoS)、密码暴力穷举及恶意爬虫的威胁。
1. 基于 Redis 的滑动窗口限流架构 (Rate Limiting)
对依据 IP 地址发起的所有入站请求,在 Redis 内存数据库中通过滑动窗口(Sliding Window)算法在微秒级内完成放行评估。
- 高危敏感接口防护:针对登录认证、短信验证码和支付结账路由,实施严格的每分钟 5 次限流保护,彻底杜绝爆破。
- 常规页面宽泛浏览:对于普通商品详情和分类浏览分配充裕的配额,确保真实买家体验顺畅自如。
2. 安全策略体系与 Caddy 边缘反向代理防护
Caddy Web 服务器充当第一道天然防线,默认强制启用 TLS 1.3 现代加密协议并全自动续签 SSL 证书。
支付结算端点专项防护
金融级安全标准
隔离支付网关入口,对所有入站的第三方 Webhook 实行严格的 HMAC-SHA256 签名验签防篡改。
输入数据全量清洗与类型校验
基于 Zod 的严谨 Schema
所有接口入参均经过 Zod Schema 强类型过滤,彻底阻断 SQL 注入与跨站脚本(XSS)漏洞风险。
在 API 路由中实现 Rate Limiting 限流示例
typescript// ── OTP request: phone (POST /auth/customer/phone-auth) ───────────────{ method: "POST", matcher: "/auth/customer/phone-auth", middlewares: [ createRateLimitMiddleware({ maxAttempts: 3, windowMs: 60 * 60 * 1000, // 1 hour countOn: "success", // only count actual OTP sends message: "Too many OTP requests. Please try again later.", }), ],},// ── OTP register: phone ───────────────────────────────────────────────{ method: "POST", matcher: "/auth/customer/phone-register", middlewares: [ createRateLimitMiddleware({ maxAttempts: 5, windowMs: 30 * 60 * 1000, // 30 minutes countOn: "failure", // only penalize wrong codes message: "Too many failed attempts. Please try again later.", }), ],},Redis 内存存储的核心技术优势
限流计数器完全驻留在 Docker 内网 Redis 的高速内存中,即便面临突发海量并发冲击,单次校验耗时依旧在微秒级。