1

我在这里遵循示例:https ://www.npmjs.com/package/busboy

我担心有人可能会故意使服务器过载。我想知道是否有一种方便的方法,在上传数据之前,通过测量整个 POST 正文的大小来防止垃圾邮件,而不仅仅是上传的文件。我尝试了以下方法,但显然没有用:

if (JSON.stringify(req.body).length > 5 * 1024 * 1024) res.redirect('/');
4

1 回答 1

2

你不能依赖Content-Length被设置。即使设置了它,如果这个人是恶意的,他们可能会使用不正确的Content-Length或者他们可能会使用Transfer-Encoding: chunked,在这种情况下,无法判断请求正文有多大。

stringify()此外,每次都调用req.body也很容易导致 DoS 式攻击。

但是,busboy确实有几个选项application/x-www-form-urlencoded可以限制请求的各个方面multipart/form-data(例如最大文件大小、最大文件数等)。

您还可以将请求主体的解析限制为您期望请求主体的路由,而不是尝试解析所有请求的请求主体。

于 2015-09-05T14:15:45.160 回答