最近,我已经从我的reactJS服务URL接收到400个错误,但是我在其他微服务上没有收到它们。这是我尝试过的:
查看express
来查找是否有400个错误从那里来了,但没有成功。
浏览到反应代码,那里不会出现400个错误。
正在浏览chrome控制台...。但是它什么也没有。
它甚至看起来都没有收到我的服务器上的任何日志,所以好像它从未命中,因此那里没有日志。
我的节点版本为 10.15.3 ,但我所有其他微服务均为 10.13.0 。
为什么我的React / ExpressNextJS微服务会出现400个错误?
答案 0 :(得分:0)
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/)
您可以做两件事之一...
还原为v10.13.0
添加标志--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)
测试
要对此进行测试,可以将curl请求与超过8kb的巨大cookie一起使用,并且应该收到400错误。调整该最大值后,它应该可以工作。