前言

在后端服务中,我们总是会遇到一些不安全的情况,毕竟web本身也不是一点漏洞都没有,好在有一些便捷的插件拱我们使用。

  1. helmet,通过设置 HTTP 响应标头来帮助保护 Express 应用程序;
  2. express-rate-limit,用于限制对公共 API 和/或终结点(例如密码重置)的重复请求,防止暴力攻击;

本来还有一个跨域处理的CORS插件,但是目前还没有时间实际部署上线,所以在没有实际经验暂时就不写了,到时候单开一篇文章。

安装依赖

pnpm i helmet express-rate-limit

教程

这两个插件我们都需要在main.ts中启用。

main.ts

import { NestFactory } from "@nestjs/core";
import { AppModule } from "./app.module";
import helmet from "helmet";
import rateLimit from "express-rate-limit";

async function bootstrap() {
    const app = await NestFactory.create(AppModule);

    // 头信息安全处理
    app.use(helmet());
    // 限制请求频率
    app.use(
        rateLimit({
            windowMs: 15 * 60 * 1000, // 15 分钟
            max: 100, // 15分钟中最大 100 个请求
            standardHeaders: "draft-7",
            legacyHeaders: false
        })
    );


    await app.listen(3000);
}
bootstrap();

一般情况下默认值就行了,有需要定制的就自行查看文档即可。

分类: Nest.js 标签: 安全头信息Nestjs限制请求

评论

暂无评论数据

暂无评论数据

目录