helmet.js 一个中间件的自定义选项,同时启用其他中间件

helmet.js custom options for one middleware while enabling others

我想为 helmet.js 中间件之一设置一些自定义选项,但我不明白这样做是否会启用其他中间件,或者我必须明确启用它们?

来自 helmet.js 文档:

// Sets all of the defaults, but overrides `script-src` and disables the default `style-src`
app.use(
  helmet.contentSecurityPolicy({
    useDefaults: true,
    directives: {
      "script-src": ["'self'", "example.com"],
      "style-src": null,
    },
  })
);

我应该在上面的代码前加上app.use(helmet())吗?

app.use(helmet()) 包含 Helmet 的所有默认中间件及其默认选项。

app.use(helmet.contentSecurityPolicy()) 仅包含内容安全策略中间件。换句话说,你不会得到 Helmet 的其余中间件。

要包含 Helmet 的所有默认值并自定义 CSP 中间件,请在顶级 helmet() 下指定它:

app.use(
  helmet({
    contentSecurityPolicy: {
      // ...
    },
  })
);