Node.js Node Js Express默认限制

Node.js Node Js Express默认限制,node.js,express,Node.js,Express,正在读取节点js文档。对于http正文大小和参数数量的默认限制值,它们似乎比较保守: 我发现您可以扩展它,这似乎是一个经过验证的解决方案: var bodyParser=require('body-parser') app.use(bodyParser.urlencoded({ 参数限制:100000, 限制:“50mb”, 扩展:正确 })); 然而,仍然存在两个问题: 为什么默认值如此保守 为什么将限制扩展到50mb是个好主意 我知道答案取决于应用解决方案的应用程序,但我希望有一个更通用的

正在读取节点js文档。对于http正文大小和参数数量的默认限制值,它们似乎比较保守:

我发现您可以扩展它,这似乎是一个经过验证的解决方案:

var bodyParser=require('body-parser')

app.use(bodyParser.urlencoded({ 参数限制:100000, 限制:“50mb”, 扩展:正确 }));

然而,仍然存在两个问题:

  • 为什么默认值如此保守
  • 为什么将限制扩展到50mb是个好主意

  • 我知道答案取决于应用解决方案的应用程序,但我希望有一个更通用的面向方法的答案来更好地理解问题。

    答案似乎是HTTP负载的编码

    Express.js文档()说bodyParser.urlencoded解析x-www-form-urlencoded数据

    MDN()基本上说x-www-form-urlencoded数据是键/值对,并且(我在这里的两行之间阅读)不适合大量数据传输(使用多部分/表单数据编码发送大量数据):

    x-www-form-urlencoded:值在键值元组中编码,以“&”分隔,键值之间用“=”分隔。非字母数字字符采用百分比编码:这就是此类型不适合用于二进制数据的原因(请改用多部分/表单数据)


    bodyParser似乎将数据限制为一种安全措施,以帮助我们避免遇到传输错误/问题。至少,我是这样理解的。

    答案似乎是HTTP有效负载的编码

    Express.js文档()说bodyParser.urlencoded解析x-www-form-urlencoded数据

    MDN()基本上说x-www-form-urlencoded数据是键/值对,并且(我在这里的两行之间阅读)不适合大量数据传输(使用多部分/表单数据编码发送大量数据):

    x-www-form-urlencoded:值在键值元组中编码,以“&”分隔,键值之间用“=”分隔。非字母数字字符采用百分比编码:这就是此类型不适合用于二进制数据的原因(请改用多部分/表单数据)


    bodyParser似乎将数据限制为一种安全措施,以帮助我们避免遇到传输错误/问题。至少,我是这样理解的。

    我正在努力思考一个合法的用例,在这个用例中,API需要在一个请求中接受100多个参数。回顾openwebapplicationsecurityproject()指南(),ExpressJS设置的默认限制值似乎是一致的、负责任的。我不会改变他们


    如果你正沿着一条你认为这些限制可能阻碍你提供你需要的功能的道路,我会强烈考虑重新考虑你的策略,因为这可能会给你带来不必要的安全漏洞。例如,您可以发出多个较小的请求等。

    我正在努力思考一个合法的用例,其中API需要在单个请求中接受100多个参数。回顾openwebapplicationsecurityproject()指南(),ExpressJS设置的默认限制值似乎是一致的、负责任的。我不会改变他们


    如果你正沿着一条你认为这些限制可能阻碍你提供你需要的功能的道路,我会强烈考虑重新考虑你的策略,因为这可能会给你带来不必要的安全漏洞。例如,您可以提出多个较小的请求等。

    实际上,100K限制是我的问题,而不是参数部分,该代码只是从另一个SO答案复制粘贴。实际上,100K限制是我的问题,而不是参数部分,该代码只是从另一个SO答案复制粘贴。