Skip to content

Nest 实战 (五)

网络安全 helmet

注意

  1. 默认头带有框架信息,如:X-Powered-By: Express
  2. 默认头带有服务器信息,如:Server: Express
  3. 默认头带有安全信息,如:X-Download-Options: noopen
  4. 默认头带有安全信息,如:X-Content-Type-Options: nosniff

所以针对以上信息,我们需要使用 helmet 来进行安全防护

1. 安装依赖

bash
pnpm i helmet -S

2. 使用

ts
// 网络安全
import helmet from "helmet";
// web 安全,防常见漏洞
// 注意: 开发环境如果开启 nest static module 需要将 crossOriginResourcePolicy 设置为 false 否则 静态资源 跨域不可访问

// crossOriginOpenerPolicy
//这个头部用于控制一个文档与其跨源 opener 之间的关系。在这个例子中,设置为'same-origin-allow-popups',表示允许同源能访问 不同源 访问不了

// crossOriginResourcePolicy:这个选项用于设置 Cross-Origin-Resource-Policy HTTP 头部。这个头部用于控制一个文档如何处理跨源资源请求。在这个例子中,设置为 false,表示禁用这个功能。
app.use(
  helmet({
    crossOriginOpenerPolicy: { policy: "same-origin-allow-popups" },
    crossOriginResourcePolicy: false,
  })
);