非常教程

Nest参考手册

技术

安全

在本章中,您将学习一些可以提高应用程序安全性的技术。

头盔

通过适当地设置HTTP标头,头盔可以帮助保护您的应用免受一些众所周知的Web漏洞的影响。通常,Helmet只是12个较小的中间件函数的集合,它们设置与安全相关的HTTP头(阅读更多)。首先,安装所需的包:

$ npm i --save helmet

安装完成后,将其应用为全局中间件。

import * as helmet from 'helmet';
// somewhere in your initialization file
app.use(helmet());

CORS

跨源资源共享(CORS)是一种允许从另一个域请求资源的机制。在引擎盖下,Nest使用了cors包,它提供了一系列选项,您可以根据自己的要求进行自定义。为了启用CORS,您必须调用enableCors()方法。

const app = await NestFactory.create(ApplicationModule);
app.enableCors();
await app.listen(3000);

此外,您可以将配置对象作为此函数的参数传递。可用的属性在官方cors存储库中详尽描述。另一种方法是使用Nest选项对象:

const app = await NestFactory.create(ApplicationModule, { cors: true });
await app.listen(3000);

您也可以使用cors配置对象,而不是传递布尔值。

CSRF

跨站点请求伪造(称为CSRF或XSRF)是一种恶意利用网站,其中未经授权的命令从Web应用程序信任的用户传输。要减轻此类攻击,您可以使用csurf软件包。首先,安装所需的包:

$ npm i --save csurf

安装完成后,将其应用为全局中间件。

import * as csurf from 'csurf';
// somewhere in your initialization file
app.use(csurf());

限速

为了保护您的应用程序免受暴力攻击,您必须实现某种速率限制。幸运的是,NPM上已经有很多各种中间件可用。其中之一是快速限价。

$ npm i --save express-rate-limit

安装完成后,将其应用为全局中间件。

import * as rateLimit from 'express-rate-limit';
// somewhere in your initialization file
app.use(rateLimit({
  windowMs: 15 * 60 * 1000, // 15 minutes
  max: 100 // limit each IP to 100 requests per windowMs
}));

提示如果你工作FastifyAdapter,请考虑使用fastify-rate-limit。

Nest

Nest 是一个用于构建高效,可扩展的 Node.js 服务器端应用程序的框架

Nest目录

1.介绍
2.常见问题
3.CLI
4.方法
5.执行上下文
6.微服务
7.WEBSOCKETS
8.GRAPHQL
9.技术
10.基本内容
11.迁移指南