【发布时间】:2022-01-24 17:16:08
【问题描述】:
我决定使用 wget 进行测试,结果表明,如果您只是使用 wget 发送垃圾邮件,则可能会阻塞会话存储,即存储只是创建了非常非常多的小型会话,但其中很多。我怎样才能避免这种情况?
我脑子里有两个场景。
- 减少会话的最长期限。
- 设置速率限制。
但我不确定这是否足够。你有什么推荐的?
如果每 0.1 秒调用一次 wget,则攻击时间少于 5 分钟。
注意:仅当您使用 wget 之类的工具时才会发生这种情况。如果您在浏览器中刷新页面,则不会创建新会话。
代码示例:
const express = require('express')
const app = express()
const port = 3000
const path = require('path')
const MongoStore = require('connect-mongo');
app.use(require('cookie-parser')());
app.use(require('body-parser').urlencoded({extended: true}));
app.use(require('express-session')({
secret:'keyboard cat',
resave: true,
saveUninitialized: true,
cookie:{
sameSite: 'none',
secure: true,
maxAge: 14 * 24 * 3600 * 1000 // two week
},
store: MongoStore.create({ mongoUrl: 'something secret' })
app.set('view engine', 'ejs');
app.set('trust proxy', 1)
app.get('/', (req, res) => {
res.send(req.session)
})
【问题讨论】:
标签: node.js express express-session express-rate-limit