Node.js 我应该在RESTAPI中使用哪些头盔模块
问题: rest API应使用哪些头盔模块 背景:Node.js 我应该在RESTAPI中使用哪些头盔模块,node.js,rest,api,express,helmet.js,Node.js,Rest,Api,Express,Helmet.js,问题: rest API应使用哪些头盔模块 背景: 我正在构建一个Node/Express REST Api,并一直看到头盔弹出窗口是我应该使用的安全中间件。查看Hellm的文档,有些模块(内容安全策略、跨域等)似乎只适用于前端应用程序。rest API中应该使用哪些模块?人们在rest API中使用头盔的主要原因是为了避免(XSS)和脚本注入。你所要做的就是这样。请记住,它只是一个快速中间件 const helmet = require("helmet"); app.use(helmet())
我正在构建一个Node/Express REST Api,并一直看到头盔弹出窗口是我应该使用的安全中间件。查看Hellm的文档,有些模块(内容安全策略、跨域等)似乎只适用于前端应用程序。rest API中应该使用哪些模块?人们在rest API中使用头盔的主要原因是为了避免(XSS)和脚本注入。你所要做的就是这样。请记住,它只是一个快速中间件
const helmet = require("helmet");
app.use(helmet())
Helmet是一个Express.js中间件。并用于避免脚本注入。初始化应用程序时,请按如下方式使用头盔:
const express = require('express');
const helmet = require('helmet');
const app = express();
app.use(helmet());
希望这有帮助:)tl;dr:以下内容可能对API有用,但您可以设置更多以确保安全:
- ,它设置
头,如果API的使用者知道如何处理证书透明性,则它非常有用Expect CT
- ,它设置了
标题,如果您的API响应被放入X-Frame-Options
或类似文件中,它将非常有用。(这是我个人碰到的。)iframe
- ,它设置了
标题,帮助用户保持HTTPS严格的传输安全性
- ,它设置
标题,在浏览器中很有用,可能会尝试自动检测API响应的类型并执行意外操作。(这是我个人碰到的。)X-Content-Type-Options
- ,它设置了
标题,可能有助于保护您的站点免受来自Adobe产品(如Flash)的奇怪请求X-allowed-Cross-Domain-Policies
这里是《头盔》的作者 我想说,在API中使用头盔(或它设置的HTTP头)有两个原因:
,并导致意外事件发生。(旧浏览器有时会出现问题,导致漏洞。)您也可以这样做,以防将来API加载到浏览器中,即使现在还没有加载- ,它设置了
头,可能没有用内容安全策略
- ,它设置
头,可能没有用X-DNS-Prefetch-Control
- ,它设置
头,如果API的使用者知道如何处理证书透明性,则可能非常有用Expect CT
- ,它设置了
标题,可能没有用功能策略
- ,它设置
标题,可能非常有用,以防您的API响应被放入X-Frame-Options
或类似文件中。(这是我个人碰到的。)iframe
- ,它删除了
标题,可能没有什么用处(在浏览器中甚至没有那么有用!)X-Powered-By
- ,它设置了
头,可能有助于让用户使用HTTPS严格的传输安全性
- ,它设置
标题,可能没有什么用处X-Download-Options
- 在未来的头盔版本中会被移除,而且对安全性来说也不是非常有用,所以它可能不会有用
- ,它设置了
标题,在可能尝试自动检测API响应类型并执行意外操作的浏览器中可能非常有用。(这是我个人碰到的。)X-Content-Type-Options
- ,设置
标题,可能有助于保护您的站点免受来自Adobe产品(如Flash)的奇怪请求X-allowed-Cross-Domain-Policies
- ,它设置了
标题,可能没有用推荐人策略
- ,它设置了
头,可能没有用X-XSS-Protection
总而言之:其中一些可能有用,为了安全起见,设置其中一些标题可能值得。为什么案例过滤器不有用?从另外两条评论中可以看出,它是用于此目的的。
xssFilter
可能没有什么用处,因为(1)API使用者根本不应该执行JavaScript(2)它不能完全防止XSS攻击,即使在浏览器中也是如此。