@wakenbyWork

Как запретить отправлять больше n количества запросов с ip?

Есть код который подписывает пользователей на mail chimp. Так вот не хочется чтобы один пользователь мог условно по скрипту или как то так сделать миллион запросов с почтами, как можно от этого защититься?

Вот код для подписки:

const express = require('express')
const bodyParser = require('body-parser')
const app = express()
const Mailchimp = require('mailchimp-api-v3')

app.use(bodyParser.json())
app.use(function (req, res, next) {
  res.setHeader('Access-Control-Allow-Origin', 'http://localhost:3000')
  res.setHeader('Access-Control-Allow-Methods', 'POST')
  res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type')
  res.setHeader('Access-Control-Allow-Credentials', true)
  next()
})

app.post('/subscribe',function (req, res) {
  const { email } = req.body
  const api_key = '...'
  const list_id = '...'
  const mailchimp = new Mailchimp(api_key)
  
  mailchimp.post(`lists/${list_id}`, {
    members: [{
      email_address: email,
      status: 'subscribed'
    }]
  })
    .then(result => res.send(result))
    .catch(error => res.send(error))
})

app.listen(1000)
  • Вопрос задан
  • 99 просмотров
Решения вопроса 1
Grapeoff
@Grapeoff
В чём концепция...?
Five seconds in google: https://www.npmjs.com/package/express-rate-limit

Ключевые слова: rate limit, throttle.

Ну и вместо ручного проставления CORS заголовков также есть одноимённый npm модуль.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы