我正在尝试解决我的应用程序中的缓慢发布漏洞问题。
为了限制来自用户的连接数,我使用了 express-rate-limit 以使应用程序不会变得不可用。
const rateLimit = require('express-rate-limit')
const limiter = rateLimit({ windowMs: 60 * 1000, // 1 minute max: 100 // limit each IP to 100 requests per windowMs })
app.use(limiter)
但是,如果我尝试使用 slowtesttool 测试我的应用程序并使用 2 个连接运行测试(每秒连接 1 个,每 10 秒跟踪一次数据),我看到连接永远不会关闭。
我已经为连接设置了超时,如下所示,但它似乎不起作用!
app.use((req, res, next) => {
req.connection.setTimeout(30000, () => {
req.socket.end()
})
next()
})
有没有办法可以限制接受数据的速率,即指定我可以等待每个下一个正文块的最长时间?