Разработчик Танин Нанакорн год не мог войти в аккаунт брокера Vanguard через браузер: он несколько раз за год сбрасывал пароль и заходил по QR-коду с телефона, пока не изучил верстку страницы сброса.
В форме стоял атрибут
maxlength="20". Менеджер паролей генерировал ключ длиннее 20 символов, а Chrome при вставке в оба поля молча обрезал его до 20 знаков. Форма сброса принимала обрезанную строку, и новым паролем стала обрезанная строка.На странице же входа
maxlength отсутствовал: туда вставлялась полная строка, которую сервер отклонял. Использовать maxlength на паролях опасно: проверять длину нужно в JS или на бэкенде с сообщением об ошибке, а не срезать хвост ввода в браузере.@tproger_web