es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Por qué express-session crea una sesión con cada solicitud wget a ella?

Decidí probar con wget y resulta que puedes saturar la tienda de sesiones si simplemente haces spam con wget, es decir, la tienda simplemente crea muchas, muchas sesiones de tamaño pequeño, pero muchas de ellas. ¿Cómo puedo evitar esto?

Tengo dos escenarios en mente.
1. Reducir la edad máxima de las sesiones.
2. Establecer el límite de velocidad.

Pero no estoy seguro de que sea suficiente. ¿Qué recomiendas?

Menos de 5 minutos de ataque si se llama a wget cada 0.1 segundos.
Imagen

Nota: esto solo sucede si usas una herramienta como wget. Si actualizas la página en tu navegador, no se creará una nueva sesión.

Ejemplo de código:

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 // dos semanas
  },
  store: MongoStore.create({ mongoUrl: 'algo secreto' })

app.set('view engine', 'ejs');
app.set('trust proxy', 1)

app.get('/', (req, res) => {
  res.send(req.session)
})
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Una opción para evitar la obstrucción del almacén de sesiones es implementar una combinación de reducir la edad máxima de las sesiones y establecer un límite de tasa para limitar el número de solicitudes por segundo. También se puede considerar la implementación de un CAPTCHA u otra forma de verificación de usuario para prevenir ataques automatizados. Además, se pueden utilizar herramientas como fail2ban para bloquear las direcciones IP que estén realizando solicitudes excesivas. Por último, puedes considerar optimizar tu almacén de sesiones para manejar de manera más eficiente grandes cantidades de sesiones pequeñas.

Comments are closed.