Сервер лёг из-за моего же ratelimit
Попросил протестировать сайт на уязвимости. В админке ничего интересного не нашли, уже почти выдохнул. Но потом залезли в раздел Связь и оказалось, что лимита на отправку сообщений там просто нет. Вообще. То есть можно было спамить запросами сколько угодно и сервер это спокойно принимал. Проверили через прокси всё успешно отправляется, нагрузка идёт. Спустя время захожу на сайт сервер уже не работает. И самое интересное, что к этому моменту спам был остановлен. Начал разбираться и выяснилось, что проблема глубже. Мой ratelimit.go начинал ограничивать поток запросов, но делал это гениально: он сначала принимал запрос, создавал нагрузку, а уже потом его отклонял. То есть защита вроде есть, но сервер всё равно получает удар. Более того, даже когда поток остановился, скрипт продолжал считать, что атака ещё идёт, из-за чего сам же и перегружался вместе с сервером. В итоге лёг не только сайт, но и моя уверенность в собственном коде. Раздел Связь временно отключён. Он и так работал криво (сообщения могли отображаться между разными пользователями), так что это был вопрос времени. Верну позже, но уже с нормальной архитектурой и адекватной защитой, а не ну вроде ограничивает и ладно.