【问题标题】:Why am I getting 400 errors? Node, Express, ReactJS为什么我会收到 400 个错误?节点,快递,ReactJS
【发布时间】:2019-09-24 11:06:25
【问题描述】:

最近,我的 reactJS 服务 url 收到 400 个错误,但我的其他微服务没有收到这些错误。这是我尝试过的:

  1. 查看express 以了解是否有 400 错误来自那里,但没有成功。

  2. 深入研究反应代码,应该不会出现 400 错误。

  3. 查看 chrome 控制台....但它什么也没有。

  4. 看起来我什至没有在我的服务器上接收任何日志,所以就好像它从未命中,所以那里没有日志。

我的节点版本是 10.15.3,但我所有其他微服务都是 10.13.0

为什么我的 react/express NextJS 微服务会出现 400 个错误?

【问题讨论】:

  • 就目前而言,您的问题无法回答。我看到您发现了问题,但是为了使整个事情有价值,您应该在问题中添加minimal reproducible example
  • 在答案中添加了关于卷曲的信息
  • 问题应该暴露一个可验证的问题,而不是答案。

标签: javascript node.js express http-status-code-400


【解决方案1】:

2018 年 11 月进行了 PR,对最大标头大小进行了重大更改。标头的大小只能为 8kb。

影响的节点版本是 v6.15.0、v8.14.0、v10.14.0、v11.3.0(参见https://www.nearform.com/blog/protecting-node-js-from-uncontrolled-resource-consumption-headers-attacks/

你可以做两件事之一......

  1. 降低到 v10.13.0

  2. 添加标志--max-http-header-size=10000

背景

为避免 DoS 攻击,最大大小从 80kb 减少到 8kb。如果您的网站上有很多 cookie,您将收到 400 错误而没有太多输出。在此处阅读有关 PR 和讨论的更多信息:https://github.com/nodejs/node/issues/24692,这是 PR (https://github.com/nodejs/node/commit/92231a56d9)

测试

要对此进行测试,您可以使用带有超过 8kb 的巨大 cookie 的 curl 请求,您应该会收到 400 错误。调整此最大值后,它应该可以工作。

【讨论】:

    猜你喜欢
    • 2019-10-20
    • 1970-01-01
    • 2012-10-04
    • 1970-01-01
    • 2020-11-05
    • 1970-01-01
    • 2013-12-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多