advanced

MFA, password hashing и refresh token rotation

Храните passwords через adaptive hashing, добавляйте phishing-resistant MFA где возможно и rotate refresh tokens с replay detection и revocation.

Пароли никогда не хранят в plaintext. Adaptive hashing — bcrypt, scrypt или Argon2id — с солью на пользователя и настроенным cost. Сравнение через constant-time API библиотеки.

					import { hash, verify } from '@node-rs/argon2';

const passwordHash = await hash(plainPassword, {
  memoryCost: 19456,
  timeCost: 2,
});

const ok = await verify(passwordHash, candidatePassword);
				

MFA — второй фактор: TOTP, WebAuthn/passkeys (phishing-resistant), hardware keys. Step-up MFA для чувствительных действий при активной сессии.

Refresh token rotation выдаёт новый refresh при каждом использовании и инвалидирует предыдущий. Reuse (replay) — revoke всей token family, признак кражи.

На интервью: pepper при утечке БД; параметры Argon2; recovery codes и lockout без DoS.

Типовые ошибки: MD5/SHA для паролей; пароли по email; бессрочный refresh; обход MFA на API routes.

Чеклист:

  • Argon2id/bcrypt с мониторингом cost.
  • Phishing-resistant MFA для high-risk.
  • Rotation refresh; детект replay.
  • Rate-limit и аудит неудачных login.