Вход
Вход, сессия и защита от перебора
Один раз войдя, вы остаётесь внутри надолго — но не навсегда и не на чужом компьютере молча.
Два срока сразу
30 дней абсолютный срок, 14 — по бездействию
Сессия гаснет через 30 дней после входа в любом случае — это отсекает токен, забытый где-то давно. Второй срок короче: 14 дней без единого действия, и сессия гаснет раньше, даже если 30 дней ещё не прошли, — так пропадает забытый вход на чужом компьютере.
Перебор пароля
10 попыток за 15 минут на пару адрес-почта
Счётчик попыток входа считается по паре: адрес плюс почта. Перебор одного аккаунта не блокирует вход всем из той же сети — соседа по Wi-Fi это не касается. Десять неверных попыток за пятнадцать минут останавливают именно эту пару до конца окна.
Граница
Счётчик живёт в памяти процесса, не в базе
Предел попыток считается в оперативной памяти службы: перезапуск сервера обнуляет счётчик, отдельного хранилища под него нет. Про то, что ещё не покидает сервер Vkladka, читайте в безопасности.
Как это делается
Адрес для счётчика берётся не откуда попало
Счётчик попыток входа помнит адрес гостя, но верит заголовку с настоящим IP только тогда, когда соединение пришло от своего же сервера-посредника. Снаружи такой заголовок подделать проще простого, поэтому программа берёт вместо него адрес самого соединения. Пароль при этом ограничен двумя сотнями знаков — предел стоит и на вход, и на регистрацию.
Где граница
Удачный вход стирает историю ошибок
Счётчик неудачных попыток не тает постепенно — успешный вход обнуляет его целиком. Если человек девять раз ошибся паролем и на десятый попал верно, следующая ошибка снова получит все десять попыток окна, а не продолжит счёт от той девятки. Забытый пароль не копится против вас. Список гостевых пар при этом не растёт бесконечно: как только в нём набирается больше пяти тысяч записей, всё, что старше окна в пятнадцать минут, вычищается разом.
Войдите один раз и забудьте про повторный вход
Тридцать дней без переспроса, а после — вход снова за минуту.