Только 500 спам-сообщений? Неплохо. Многие сайты получают десятки тысяч. Это большая неприятность. Cybercreeps ....
Довольно сложно остановить эти записи в коде вашего сервера.
Лучший способ замедлить спам-сообщения - это включить CAPTCHA («Я не робот») в ваши формы публикации на веб-страницах.
Google предлагает сервис reCAPTCHA . Это хорошо по стандартной причине Google: он собирает данные со всех сайтов, которые его используют, и создает списки известных спамеров, чтобы отклонить их.
Есть и другие способы. Во-первых, требуется, чтобы все пользователи, которые размещают POST, сначала зарегистрировались по электронной почте и паролям, а затем попросили их завершить регистрацию, ответив на электронное письмо, которое вы им отправили. Но это больше, чем быстрое исправление маршрута post()
.
EDIT В процессе разработки вы знаете, какие IP-адреса вы и ваши тестеры используете для своих браузеров. Так что сделайте что-то вроде этого, используя ваши собственные IP-адреса, а не те, что в этом примере.
const ipWhitelist = ['10.11.12.13', '10.12.14.16', '192.168.123.124']
...
Затем в верхней части вашего post()
метода сделайте это.
if (!ipWhitelist.includes(req.connection.remoteAddress))
throw new Error('ip not in whitelist, begone cybercreep!)
Но, очевидно, вам нужно вытащить это перед выпуском.