Начал прикручивать активацию. Возник вопрос, как бороться с перебором ключей. Пока ничего лучше не придумал, чем банить на какое-то время ip, если было сколько-то неверных попыток. Или чтобы сам софт не отправлял повторный запрос на активацию в течение условно 10 секунд, а если на сервер с того же ip запрос пришел быстрее, то банить сразу.
Здравствуйте, Unhandled_Exception, Вы писали:
U_E>Всем привет,
U_E>Начал прикручивать активацию. Возник вопрос, как бороться с перебором ключей. Пока ничего лучше не придумал, чем банить на какое-то время ip, если было сколько-то неверных попыток. Или чтобы сам софт не отправлял повторный запрос на активацию в течение условно 10 секунд, а если на сервер с того же ip запрос пришел быстрее, то банить сразу.
U_E>Кто как делает?
я тупо позволяю за последние N минут делать M попыток активации с одного ip. Вне зависимости от верности попытки. Ну то есть, почти оно. Жалоб мало. Были ли попытки перебора — не знаю, не до этого
Здравствуйте, wantus, Вы писали:
W>Обычно больше 3-4 попыток никто не делает. Так что ничего особенного делать не надо. Просто посмотривай за логом и всё.
Забыл где, но слышал историю, конкуренты подсмотрели, как делается активация, и стали дидосить. Хочу сразу заложить такой вариант, мало ли.
>Забыл где, но слышал историю, конкуренты подсмотрели, как делается активация, и стали дидосить.
У-жос, просто кошмар :)
> Хочу сразу заложить такой вариант, мало ли.
Твоя корова, делай чего хочешь. Но это решает проблему, которой у тебя нет и скорее всего никогда не будет.
Я бы просто после каждой активации считал сколько было попыток за последние N минут и посылал мне емэйл, если > X. И если таки случится страшная атака коварных конкурентов, то только тогда бы стал прикручивать контрагайки.
Здравствуйте, Unhandled_Exception, Вы писали:
U_E>Всем привет,
U_E>Начал прикручивать активацию. Возник вопрос, как бороться с перебором ключей. Пока ничего лучше не придумал, чем банить на какое-то время ip, если было сколько-то неверных попыток. Или чтобы сам софт не отправлял повторный запрос на активацию в течение условно 10 секунд, а если на сервер с того же ip запрос пришел быстрее, то банить сразу.
U_E>Кто как делает?
U_E>Спасибо!
у меня сервер активации сидит за nginx в котором есть базовые методы борьбы с ддосом,
типа ограничения кол-ва запросов с одного ip в секунду.
Также в инете есть примеры скриптов которые по nginx-логу вычисляют засранцев и в бан опять же средствами nginx.
Вообщем основная идея: это задача для nginx, а не для сервера приложений (в данном случае сервера активации).
Но к счастью применять эту теорию пока не приходилось.
Здравствуйте, Unhandled_Exception, Вы писали:
U_E>Начал прикручивать активацию. Возник вопрос, как бороться с перебором ключей. Пока ничего лучше не придумал, чем банить на какое-то время ip, если было сколько-то неверных попыток.
активатор возвращает ошибку после 5 неудачных попыток, fail2ban за это банит на 10 минут
чтобы не нагружать mysql, ключик предварительно проверяется на правильный формат через preg_match
U_E>Начал прикручивать активацию. Возник вопрос, как бороться с перебором ключей. Пока ничего лучше не придумал, чем банить на какое-то время ip, если было сколько-то неверных попыток. Или чтобы сам софт не отправлял повторный запрос на активацию в течение условно 10 секунд, а если на сервер с того же ip запрос пришел быстрее, то банить сразу.
U_E>Кто как делает?
каптча
Во, думал с самого начала о таком варианте, но никак не могу сообразить, как это сделать технически, чтобы не заставлять пользователя копировать полученный от сервера активации ключ.
Понятно, что надо открыть окно браузера со всеми нужными параметрами, а вот как получить от браузера результат, да еще и учесть, что нынче неизвестно, что может быть за браузер у пользователя.
Здравствуйте, Unhandled_Exception, Вы писали:
U_E>Во, думал с самого начала о таком варианте, но никак не могу сообразить, как это сделать технически, чтобы не заставлять пользователя копировать полученный от сервера активации ключ.
а браузер тебе зачем? грузишь картинку с сервера и показываешь ее в своем окне, результат ввода отправляешь на сервер и читаешь ответ
каждую плохую попытку заношу в таблицу вредных IP адресов, больше 10 попыток — досвидос
раз в год чищу эту таблицу IP
было пару жалоб за 5 лет от нормальных юзеров