tl;dr:以下内容可能对 API 有用,但您可以设置更多以确保安全:
helmet.expectCt,Expect-CT如果您的 API 的使用者知道如何处理证书透明度,则它会设置标头。helmet.frameguard,它设置X-Frame-Options标头,如果您的 API 响应被放入 aniframe或类似的中,则非常有用。(我个人遇到过这个问题。)helmet.hsts,设置Strict-Transport-Security标头,有助于让用户使用 HTTPShelmet.noSniff,它设置X-Content-Type-Options标头,在浏览器中很有用,它们可能会尝试自动检测 API 响应的类型并做一些意想不到的事情。(我个人遇到过这个问题。)helmet.permittedCrossDomainPolicies,设置X-Permitted-Cross-Domain-Policies标头,可能有助于保护您的网站免受来自 Adobe 产品(如 Flash)的奇怪请求头盔的作者在这里。
我想说将 Helmet(或它设置的 HTTP 标头)与 API 一起使用有两个原因:
<iframe>并导致意外发生。(老浏览器有时会出现问题在这里,造成安全漏洞。)你也可以这样做是为了面向未来的API的情况下,这是以往任何时候都加载到浏览器中,即使今天不是。Helmet 只是 13 个较小的中间件的集合。其中大多数设置了单个 HTTP 响应标头,并且大多数标头仅在浏览器中有用。但是,有些偶尔对 API(REST 或其他)有用。
让我们一一列举:
helmet.contentSecurityPolicy,设置Content-Security-Policy标题,可能没有用helmet.dnsPrefetchControl,设置X-DNS-Prefetch-Control标题,可能没有用helmet.expectCt,它设置Expect-CT标头,如果您的 API 的使用者知道如何处理证书透明度,它可能会很有用helmet.featurePolicy,设置Feature-Policy标题,可能没有用helmet.frameguard,它设置X-Frame-Options标头,在您的 API 响应被放入 an或类似的情况下可能很有用iframe。(我个人遇到过这个问题。)helmet.hidePoweredBy,删除X-Powered-By标题,可能没有用(它在浏览器中甚至没有那么有用!)helmet.hsts,设置Strict-Transport-Security标头,可能有助于保持用户使用 HTTPShelmet.ieNoOpen,设置X-Download-Options标题,可能没有用helmet.noCache 将在未来的 Helmet 版本中删除,无论如何对安全性不是很有用,所以它可能没有用helmet.noSniff,设置X-Content-Type-Options标头,可能在浏览器中很有用,这些浏览器可能会尝试自动检测 API 响应的类型并做一些意想不到的事情。(我个人遇到过这个问题。)helmet.permittedCrossDomainPolicies,设置X-Permitted-Cross-Domain-Policies标头,可能有助于保护您的网站免受来自 Adobe 产品(如 Flash)的奇怪请求helmet.referrerPolicy,设置Referrer-Policy标题,可能没有用helmet.xssFilter,设置X-XSS-Protection标题,可能没有用总结:其中一些可能有用——为了安全起见,可能值得设置其中的一些标头。
| 归档时间: |
|
| 查看次数: |
1071 次 |
| 最近记录: |