gpt4 book ai didi

node.js - 我应该在我的 REST Api 中使用 Helmet 的哪些模块

转载 作者:行者123 更新时间:2023-12-03 19:42:48 30 4
gpt4 key购买 nike

问题:

哪些 Helmet 模块应该用于 rest API?

背景:

我正在构建一个 Node/Express REST Api,并不断看到 Helmet 作为我应该使用的安全中间件弹出。查看 Helmet 的文档似乎有些模块(内容安全策略、跨域等)仅适用于前端应用程序。哪些模块应该在 Helmet 中用于休息 API?

最佳答案

tl; dr:以下内容可能对 API 有用,但您可以设置更多以确保安全:

  • helmet.expectCt ,设置 Expect-CT header ,如果您的 API 的使用者知道如何处理证书透明度
  • helmet.frameguard ,设置 X-Frame-Options header ,如果您的 API 响应被放入 iframe或类似的。 (我亲自遇到过。)
  • helmet.hsts ,设置 Strict-Transport-Security header ,有助于让用户使用 HTTPS
  • helmet.noSniff ,设置 X-Content-Type-Options header ,在可能会尝试自动检测您的 API 响应类型并执行意外操作的浏览器中很有用。 (我亲自遇到过。)
  • helmet.permittedCrossDomainPolicies ,设置 X-Permitted-Cross-Domain-Policies header ,可能有助于保护您的网站免受来自 Adob​​e 产品(如 Flash)的奇怪请求


  • Helm 的作者在这里。

    我想说将 Helmet(或它设置的 HTTP header )与 API 一起使用有两个原因:
  • 一些 header 在非浏览器用例中很有用,例如 REST API。
  • 如果您的响应曾经加载到浏览器中。例如,如果黑客将其放入 <iframe>并导致意想不到的事情发生。 (旧浏览器有时会出现问题,从而导致漏洞。)您也可以这样做,以防您的 API 被加载到浏览器中,即使现在没有加载。

  • Helmet 只是 13 个较小的中间件的集合。其中大多数设置了单个 HTTP 响应 header ,并且大多数 header 仅在浏览器中有用。但是,有些有时对 API(REST 或其他)有用。

    让我们列举它们:
  • helmet.contentSecurityPolicy ,设置 Content-Security-Policy header ,可能没用
  • helmet.dnsPrefetchControl ,设置 X-DNS-Prefetch-Control header ,可能没用
  • helmet.expectCt ,设置 Expect-CT header ,可能有用如果您的 API 的使用者知道如何处理证书透明度
  • helmet.featurePolicy ,设置 Feature-Policy header ,可能没用
  • helmet.frameguard ,设置 X-Frame-Options header ,可能有用以防您的 API 响应被放入 iframe或类似的。 (我亲自遇到过。)
  • helmet.hidePoweredBy ,删除 X-Powered-By header ,可能没用(在浏览器中甚至没那么有用!)
  • helmet.hsts ,设置 Strict-Transport-Security header ,可能有用让用户使用 HTTPS
  • helmet.ieNoOpen ,设置 X-Download-Options header ,可能没用
  • helmet.noCache 将在 future 的 Helmet 版本中删除,并且无论如何对安全性都不是 super 有用,所以它可能没用
  • helmet.noSniff ,设置 X-Content-Type-Options header ,可能有用在可能会尝试自动检测您的 API 响应类型并执行意外操作的浏览器中。 (我亲自遇到过。)
  • helmet.permittedCrossDomainPolicies ,设置 X-Permitted-Cross-Domain-Policies header ,可能有用保护您的网站免受来自 Adob​​e 产品(如 Flash)的奇怪请求
  • helmet.referrerPolicy ,设置 Referrer-Policy header ,可能没用
  • helmet.xssFilter ,设置 X-XSS-Protection header ,可能没用

  • 总而言之:其中一些可能有用——为了安全起见,可能值得设置其中一些 header 。

    关于node.js - 我应该在我的 REST Api 中使用 Helmet 的哪些模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60706823/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com