Как защититься от DDOS атак, которые генерируют POST запросы?
Доброе утро. Есть сайт, на котором можно без регистрации сохранять заметки и делиться ими. Буквально в один запрос chat gpt выдал bash скрипт, через который можно генерировать множество POST запросов в секунду.
Память не резиновая, хотелось бы узнать как можно защититься от такой DDOS атаки? Может подключение cloudflare поможет или что нибудь еще посоветуете?
Чем больше знаю, тем лучше понимаю, как мало знаю.
Капча. Ну или простейшее "Введите текст 'поехали' в это поле ввода". Или при загрузке формы через JavaScript добавлять скрытый параметр ddos_prevent со значением 'ok'.
Айнур Низамов, ошибаетесь, чистый bash не сможет запомнить "введите такое слово", если текст добавляется/меняется через JavaScript. Сможет автор скрипта, ну так тоже есть варианты борьбы. Но в целом это так или иначе - капча, просто видоизменённая.
Ещё можно отслеживать сессию/токен/куки, и обламывать тех, кто заполняет форму за пол секунды. Или даже показывать "Всё OK, вот ваша заметка", но через 5 минут её стирать автоматически.
А, ещё вариант: JavaScript-ом отслеживать нажатия клавиш клавиатуры. Заполненая форма без клавиатуры - подозрительно... Но капча лучше!
Капчу уж очень не хочется, все таки нужно максимальное удобство для человека.
Кейс с "за пол секунды" хорошая идея, попробую такое реализовать.
Нажатия клавиатуры тоже звучит неплохо, но надо будет еще клики мышью фиксировать.
А так пока сделал некоторую вариацию вашей предложенной капчи: при GET запросе передается клиенту некоторый рандомный набор правил, по которым скрип составляет сессионный ключ. Если скрип верно по этому набору правил составит сессионный ключ и он совпадет с добавленным ключем на бэке -- это, вероятно, не бот.
Однако возникает проблема большого числа сессионных ключей при DDoS атаке GET запросами, но я думаю что можно предпринять на этот счет