拒绝服务 - http 代理 - React

Posted

技术标签:

【中文标题】拒绝服务 - http 代理 - React【英文标题】:Denial of Service - http proxy - React 【发布时间】:2020-09-01 00:53:57 【问题描述】:

我很确定这个错误只是今天才出现,以前从未发生过。 当我创建一个新的 react 应用程序时,该过程发现了 1 个高漏洞:

高:拒绝服务

包: http-proxy

已修补:没有可用的补丁

依赖关系: react-scripts

路径: react-scripts > webpack-dev-server > http-proxy-middleware > http-proxy

更多信息: https://npmjs.com/advisories/1486

(我的“react-scripts”版本是3.4.1)。当然,“npm audit fix”不起作用。

我能做些什么呢?是需要关心还是可以正常工作?

【问题讨论】:

github上有一个关于这个github.com/http-party/node-http-proxy/issues/1446的问题。 npmjs.com/advisories/1486 中给出的建议表明目前还没有可用的修复程序。这是因为该漏洞报告是今天才添加的,需要进一步评估。 我们是否应该同时停止运行 npm 审计? 今天我也遇到了同样的问题 DoS 漏洞通常意味着有一种方法可以滥用模块来快速关闭您的应用程序而无需太多努力。如果您的 http 代理是面向公众的,那么这可能是一个问题。在修复之前,您无能为力。 【参考方案1】:

首先安装包

npm install http-proxy --save-dev

在您的 package.json 文件中添加以下语句

“决议”: “http 代理”:“^1.18.1”

“脚本”: “预安装”:“npx npm-force-resolutions”

然后在命令提示符下运行命令-

npm 安装

这可能会修复您的漏洞

【讨论】:

【参考方案2】:

升级到 http-proxy 1.18.1+,其中包含对详细安全问题的修复。 NPM 现在已更新其安全 API,以包含此问题现已解决的信息。

更多信息请见https://github.com/http-party/node-http-proxy/issues/1446

【讨论】:

【参考方案3】:

所有版本的 http-proxy 都容易受到拒绝服务攻击。具有长正文的 HTTP 请求会触发 ERR_HTTP_HEADERS_SENT 未处理的异常,该异常会导致代理服务器崩溃。这只有在代理服务器使用 proxyReq.setHeader 函数在代理请求中设置标头时才有可能。

对于在http://localhost:3000 上运行的代理服务器,以下 curl 请求会触发未处理的异常: curl -XPOST http://localhost:3000 -d "$(python -c 'print("x"*1025)')"

补救

目前没有可用的修复程序。考虑使用替代包,直到修复可用。

结论

不过暂时可以正常工作。到目前为止,它应该不会导致任何类型的工作异常。

【讨论】:

它会破坏 ci 管道

以上是关于拒绝服务 - http 代理 - React的主要内容,如果未能解决你的问题,请参考以下文章

浏览器代理服务器拒绝连接的解决

浏览器代理服务器拒绝连接的解决

React Router:拒绝执行脚本或样式

IIS中的反向代理上的SonarQube拒绝执行脚本

为啥 Jenkins 在启动代理时说“服务器拒绝了 1 个私钥”?

SVN由于目标机器积极拒绝,无法连接