javascript - 如何使用 busboy 防止 node.js Express 中的 POST 垃圾邮件?

标签 javascript node.js express spam-prevention busboy

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

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

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

最佳答案

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

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

但是,busboy 确实有 several options用于限制 application/x-www-form-urlencodedmultipart/form-data 请求的各个方面(例如最大文件大小、最大文件数等)。

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

关于javascript - 如何使用 busboy 防止 node.js Express 中的 POST 垃圾邮件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32413564/

相关文章:

javascript - 咕噜postcss "not found"

javascript - axios 使用数据服务器参数

javascript - 在 Express 应用程序初始化期间加载 JSON 文件

node.js - 使用 winston 仅记录消息

javascript - 将数据附加/插入到 MongoDB 中

javascript - Rails cookie 对象、Cookie HTTP header 和 document.cookie 之间的关系

java - 将Java代码转换为NodeJS - 加密方法

node.js - 本地主机 :5000 is not loading my server! !需要帮助

node.js - 如何通过 id 从 Firestore 获取?

node.js - 添加一个钩子(Hook)以全局记录 node.js/express 中的所有 Node HTTP 响应