第46天 #100天代码挑战 — 安全性(速率限制、跨域资源共享、Helmet)

发布日期:2026-03-20 10:09:59   浏览量 :2
发布日期:2026-03-20 10:09:59  
2

后端安全不是可选项;它是任何可靠应用程序的基石。无论你的功能多么出色,一个存在漏洞的后端都可能泄露敏感数据、遭到滥用,甚至导致整个系统瘫痪。这正是我们使用速率限制来防止滥用、使用CORS来控制访问权限,以及使用Helmet在协议层面保护应用程序的原因。

第46天的目标是理解速率限制、CORS 和 Helmet 是什么,以及它们为何被使用。

什么是速率限制?

速率限制用于限制客户端在特定时间窗口内可以向你的服务器发送的请求数量。

为何重要

它能保护你的 API 免受以下威胁:

  • 暴力破解攻击
  • 分布式拒绝服务(DDoS)攻击
  • API 滥用

示例(Express.js)

import express from "express";
import rateLimit from "express-rate-limit";

const app = express();

const limiter = rateLimit({
  windowMs: 15 * 60 * 1000, // 15 分钟
  max: 100, // 限制每个 IP 地址
  message: "请求过于频繁,请稍后再试。"
});

app.use(limiter);

app.get("/", (req, res) => {
  res.send("你好,世界!");
});

app.listen(3000);

应用场景

  • 登录接口(防止暴力破解)
  • 公开 API(避免垃圾请求)
  • 密码重置路由

🌐 什么是 CORS?

CORS(跨域资源共享)用于控制哪些域名可以访问你的后端服务。

为何重要

浏览器默认会阻止来自未知源的请求,而 CORS 允许你明确指定哪些来源是被允许的

示例(Express.js)

import express from "express";
import cors from "cors";

const app = express();

// 允许来自 https://example.com 的请求
app.use(cors({
  origin: "https://example.com"
}));

app.get("/data", (req, res) => {
  res.json({ message: "这是受保护的数据" });
});

app.listen(3000);

免责声明:本文内容来自互联网,该文观点不代表本站观点。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请到页面底部单击反馈,一经查实,本站将立刻删除。

关于我们
热门推荐
合作伙伴
免责声明:本站部分资讯来源于网络,如有侵权请及时联系客服,我们将尽快处理
支持 反馈 订阅 数据
回到顶部