Не кожне посилання має бути відкритим для будь-кого, хто на нього натрапить. Комерційна пропозиція для одного клієнта, чернетка, яку не варто читати нікому поза командою, файл для тих дванадцятьох людей, що за нього заплатили, — щойно цей URL виникає, його можна переслати, зафоткати екран, вкинути в груповий чат і проіндексувати чимось, кого ви не запрошували.
Посилання з паролем ставить перед ціллю двері: хто відкриває його, бачить запит пароля замість вашого вмісту. Додайте дату завершення — і двері зникнуть узагалі, щойно посилання зробить свою справу. І те, й інше налаштовується секунд за десять, і жодне не вимагає, щоб людина на тому боці мала акаунт.
Як це працює
Створюючи посилання, ви задаєте пароль. urlik зберігає його у вигляді хешу — не сам пароль, а його односторонній хеш, — тож збережене значення неможливо відновити до оригіналу: ні зловмиснику з базою даних, ні нам. Відвідувач, який відкриває посилання, бачить запит; введе правильний пароль — ціль відкриється, введе неправильний — ні. Ось і вся механіка, і її простота — це і є суть.
Термін дії працює поряд. Оберіть годину, день, тиждень чи місяць — і щойно момент настане, посилання перестане відкриватися й відповідатиме 410 Gone: чесний HTTP-код для «це існувало і навмисно більше не існує», який ще й підказує пошуковим системам викинути сторінку, а не ломитися до неї знову.
Коли пароль кращий за будь-що інше
- Робота в процесі. Тестовий сайт чи чернетка презентації, яку ви хочете показати на рецензію, але не пускати в обіг.
- Платний контент. Файл, запис чи ресурс, який має дійти до покупців, а не до всього інтернету.
- Усе друковане. QR-код на плакаті може відсканувати кожен перехожий. Тримайте пароль за прилавком — і пройдуть лише ваші реальні клієнти.
- Внутрішні посилання. Дашборд чи документ за вгадуваним URL, потрапляння якого в чужі руки було б незручним, але не катастрофічним.
Чесно про те, від чого це захищає
Тут більшість статей продовжила б продавати. Ми ж проведемо межу: пароль на посиланні — це контроль доступу, а не таємниця. Він зупиняє випадковий доступ: переслане повідомлення, цікавого колегу, краулера. Він не робить вміст секретним у жодному криптографічному сенсі.
Конкретно: URL-призначення лежить у нашій базі у відкритому вигляді, бо сервер має вас туди переадресувати. Кожен, хто знає пароль, може ним поділитися. І посилання стереже лише двері — якщо сама ціль публічна, той, хто дістанеться до неї іншим шляхом, зайде без перешкод. Посилання з паролем перед публічним Google Docs не захищає взагалі нічого; краще полагодьте налаштування доступу самого документа.
Якщо вам потрібна справжня таємниця — щоб ніхто, зокрема й люди, які тримають сервер, не міг прочитати вміст, — пароль на посиланні тут не той інструмент. Скористайтеся безпечною передачею: файли шифруються у вашому браузері ще до завантаження, ключ їде в тій частині URL, яку сервер ніколи не отримує, а файл самознищується після першого завантаження. Це вже інша гарантія, і як безпечно передавати файли пояснює, де саме проходить ця межа.
Як обрати пароль, який чогось вартий
Пароль — це вся модель безпеки, тому:
- Не беріть справжній. Це пароль для обміну, а не пароль від вашого акаунта. Ніколи не той самий рядок.
- Надсилайте його окремо. Пароль у тому ж листі, що й посилання, не захищає ні від чого — один переказ, і зникло і те, і те. Посилання поштою, пароль — у месенджері або особисто.
- Хай його важко вгадати, але легко продиктувати. Три не пов'язані між собою слова кращі за
Pass2026!— довші, і їх не зіпсуєш, диктуючи по телефону. - Міняйте його для кожної групи отримувачів, коли це важливо. Одне посилання на клієнта зі своїм паролем підкаже, хто його злив, бо статистика кліків у кожного окрема.
Пароль плюс термін дії — сильніше за кожне окремо
Саме в поєднанні від цього справді багато користі. Пароль обмежує, хто; термін дії обмежує, як довго. Разом вони окреслюють шкоду від витоку, бо пароль, що втече в груповий чат наступного місяця, відкриє посилання, якого вже не існує.
Схема, що добре працює: посилання завершується за тиждень після дедлайну, якому воно служить, пароль переданий окремим каналом, по одному посиланню на отримувача. Якщо щось витече, ви знатимете, яка це була копія, і воно перестане працювати саме собою — без задачі з очищення, яку ви неодмінно забудете.
Що бачить відвідувач
Простий запит на сторінці, яка каже, який сервіс питає пароль, без жодного натяку на ціль — призначення лишається схованим, поки пароль не введено правильно. Це важить, коли сам URL видає всю картину (/acme-corp-acquisition-draft розповідає історію ще до того, як хтось зайшов). Неправильний пароль — сторінка про це каже й питає знову. Термін вичерпано — вона повідомляє, що посилання завершилося, а не вдає, ніби його ніколи не було: так менше плутанини для того, хто мав законну причину тут опинитися.
Варто знати: захищені посилання виключені з розширеного прев'ю, яке бачать соціальні краулери, тож, вкинувши таке посилання в чат, ви не зіллєте в повідомлення заголовок і картинку призначення. Це навмисно — прев'ю, що розкриває те, що стереже пароль, звело б пароль нанівець.
Стисло
Пароль на посиланні — це двері: дешево, миттєво, без акаунта і цілком достатньо для звичайного випадку, коли вміст має дійти до частини людей, а не до всіх. Поєднайте його з терміном дії, щоб у витоку був строк придатності, надсилайте пароль іншим каналом, ніж посилання, і тверезо пам'ятайте: це контроль доступу, а не шифрування. Коли потрібна сильніша обіцянка, шифруйте наскрізно замість цього. А якщо ви зважуєте, наскільки взагалі можна довіряти коротким посиланням, чи безпечні короткі посилання розкриває інший бік цього питання.