首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

安全

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

头盔

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

代码语言:javascript
复制
$ npm i --save helmet

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

代码语言:javascript
复制
import * as helmet from 'helmet';
// somewhere in your initialization file
app.use(helmet());

CORS

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

代码语言:javascript
复制
const app = await NestFactory.create(ApplicationModule);
app.enableCors();
await app.listen(3000);

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

代码语言:javascript
复制
const app = await NestFactory.create(ApplicationModule, { cors: true });
await app.listen(3000);

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

CSRF

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

代码语言:javascript
复制
$ npm i --save csurf

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

代码语言:javascript
复制
import * as csurf from 'csurf';
// somewhere in your initialization file
app.use(csurf());

限速

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

代码语言:javascript
复制
$ npm i --save express-rate-limit

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

代码语言:javascript
复制
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。

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com