Перейти к основному содержимому
cutty.dev
All posts

Безопасность ссылок с паролем — что происходит при клике

Вы можете добавить пароль к своей короткой ссылке. Мы показываем, что происходит «под капотом» — без использования жаргона — и почему это вообще стоит делать.

Короткая ссылка с паролем звучит просто. Вы вводите пароль, а кто-то другой должен его ввести, чтобы увидеть, куда ведет эта ссылка. Ниже происходит чуть больше. Мы показываем что, почему и когда это полезно.

Зачем вообще защищать ссылку паролем

Три контекста, в которых это имеет смысл:

Контент, который вы хотите показать только определенным лицам. Прайс-лист для премиум-клиентов, бета-документ перед публичным анонсом, учебный материал для тех, кто оплатил курс. Без пароля кто-то мог бы найти эту ссылку в поисковике или получить ее из вторых рук.

Контент с коротким сроком действия, который вы хотите закрыть. Специальное предложение на пятницу, материал конференции, который будет доступен только для участников. Пароль превращает ссылку в контролируемый вход — вы можете быть уверены, что посетитель получил пароль именно от вас, а не из вторых рук.

Контент, который вы публикуете публично, но хотите иметь контроль. Ваш полный прайс-лист, ваш внутренний процесс разработки продукта, ваше предложение для клиента. Ссылку можно отправить — но без пароля никто не войдет.

Что происходит при установке пароля

Вы вводите пароль в форме создания ссылки. Пароль мгновенно шифруется — преобразуется в строку символов, которую невозможно прочитать. Сам тот факт, что пароль — "tajne123", исчезает в момент нажатия кнопки «Сохранить». Даже я, как администратор сервиса, не имею возможности его прочитать.

Что записано в базе: не пароль, а отпечаток пальца (технически «хэш») — строку, которая соответствует вашему паролю только в том случае, если кто-то введет точно такой же. Если кто-то взломает нашу базу, он получит только эти строки — а не пароли к вашим ссылкам.

Мы используем для этого отраслевой стандарт, используемый большинством систем аутентификации в сети. Он медленный для вычислений намеренно — чтобы хакер, укравший базу данных, должен был ждать миллионы лет, чтобы подобрать пароли.

Что происходит, когда кто-то кликает по вашей ссылке

  1. Посетитель видит экран разблокировки вместо прямого перенаправления. Короткая информация "эта ссылка защищена паролем" и поле для ввода.
  2. Вводит пароль и нажимает "Разблокировать". Пароль проверяется на сервере на соответствие сохраненному хешу.
  3. Если он совпадает — посетитель получает токен сессии, действительный в течение 24 часов. В течение следующих суток он может возвращаться по этой ссылке без ввода пароля. Ему не нужно его запоминать.
  4. Если он не совпадает — сообщение об ошибке. После пяти попыток с одного и того же IP-адреса — блокировка на пять минут. Боты не пройдут силой.

Что мы НЕ делаем

  • Мы не логируем пароли в открытом виде. Никогда. Даже в логах для отладки.
  • Мы не отправляем пароли по электронной почте. Даже если посетитель забудет его, мы не можем его напомнить — потому что мы тоже его не знаем. Вы должны отправить ему пароль заново с того аккаунта, с которого он его получил.
  • Мы не передаем пароли третьим лицам. Ни один внешний поставщик аналитики, маркетинга или AI — не имеет доступа к этим данным.

Практические советы

Создавайте пароли, которые не являются очевидными. Название компании + год основания — это плохая идея. Генератор паролей в браузере справляется с этим лучше.

Не отправляйте пароль тем же каналом, что и ссылку. Если вы отправляете ссылку по электронной почте, отправьте пароль через SMS. Или наоборот. В таком случае взлом одного канала связи не даст полного доступа.

Вы можете иметь несколько ссылок с одним и тем же целевым URL, но разными паролями. Это полезно, когда вы предоставляете доступ разным людям — вы можете заблокировать одну ссылку, когда срок доступа должен истечь, не влияя на другие.

Пароль можно изменить без создания новой ссылки. В панели "Edytuj" → введите новый пароль. Все активные 24-часовые сессии завершатся немедленно, каждому посетителю нужно будет ввести новый пароль.

Когда пароля НЕДОСТАТОЧНО

Пароль защищает от публичного индексирования и случайного доступа. Он не защищает от человека, который знает пароль и хочет им поделиться. Если ваш сценарий требует «только этот один конкретный человек может это видеть» — вам дополнительно потребуются логин, учетные записи пользователей и авторизация. Это более высокий уровень функциональности (запланирован в будущем плане Pro).

Для 95% случаев «не хочу, чтобы это увидел случайный человек» — этой фразы достаточно.

Попробуйте сами — при создании ссылки выберите «Расширенные параметры» → «Добавить пароль».