Коротке посилання - це непрозорий редирект: одержувач не бачить, куди воно веде, поки не клікне. Ця непрозорість і є продуктом, і саме через неї погано кероване скорочення стає інструментом зловживань. Якщо ви оцінюєте скорочувач, перевірте десять засобів контролю й просіть відповідь на кожен письмово: сканування адрес призначення, підписані вебхуки, ліміти запитів за рівнями, хешовані ключі API, паролі посилань, обмеження терміну дії, журнал аудиту, списки дозволених IP, фільтрація ботів і SSO. Нижче до кожного засобу наведено, що питати та як це реалізовано в Elido, за перевіркою нашого коду станом на 2026-10-24. Де ми поступаємося, я кажу про це прямо.
Модель загроз
На інфраструктурі посилань знову й знову трапляються чотири види зловживань.
Фішинг і шкідливе ПЗ. Коротке посилання виглядає однаково, веде воно на цільову сторінку чи на форму викрадення облікових даних. Створити сотню посилань можна за секунди; прибирати наслідки після їх розповсюдження доведеться тижнями.
Витік ключів API. Ключі потрапляють у клієнтський JavaScript, публічні репозиторії та логи збірки. Якщо провайдер зберігає їх у відкритому вигляді, один витік бази даних відкриває доступ до даних усіх клієнтів.
Накрутка кліків ботами. Монітори доступності, боти попереднього перегляду та краулери переходять за короткими посиланнями. Без фільтрації вони спотворюють цифри кампаній і будь-яке тарифікування за обсягом.
Масові зловживання редиректами. Один скомпрометований робочий простір із необмеженим доступом до API може створювати десятки тисяч посилань на годину й витрачати репутацію доменів платформи на чужу фішингову кампанію.
Десять засобів контролю
Нижче до кожного засобу наведено запитання до постачальника та відповідь Elido.
1. Сканування адреси призначення під час створення та після
Якщо перевіряти лише під час створення, пропустите URL, які в перший день чисті, а на тридцятий потрапляють до списків. Потрібні і синхронна перевірка, і повторне сканування за розкладом.
url-scanner в Elido паралельно відправляє адресу призначення до п'яти джерел: Google Safe Browsing v4, PhishTank, URLhaus, SURBL та власної евристики структури URL (евристика позначає хости з xn--, так ловиться схожий домен для гомографічної атаки). Які саме джерела працюють, залежить від ключів розгортання та політики адміністратора. Підсумкова оцінка - максимум серед джерел: 80 і вище блокується, від 40 до 79 - підозріле, нижче 40 - чисте. На шляху створення сканування має бюджет 250 мс. Заблоковані адреси отримують 403 destination_blocked. Підозрілі ставляться в чергу на глибше асинхронне сканування, окрім нових безкоштовних робочих просторів, де підозрілий результат відхиляється одразу.
Є один компроміс: якщо сканер недоступний або надто повільний, створення посилання триває, а посилання позначається як невідоме для пізнішого повторного сканування. Тут ми віддали перевагу доступності перед жорстким блокуванням.
2. Вебхуки, підписані разом із часовою міткою
Непідписані вебхуки не дозволяють відрізнити постачальника від того, хто знайшов URL вашої кінцевої точки. Підписуйте часову мітку й тіло разом, інакше перехоплені навантаження можна повторювати вічно.
Наш воркер доставки надсилає v1=HMAC-SHA256(secret, "<unix_timestamp>.<body>") у X-Elido-Signature (псевдонім X-Webhook-Signature) разом із X-Webhook-Timestamp. Під час ротації секрету він також надсилає X-Elido-Signature-Previous, доки не закінчиться пільгове вікно. Формат v1= знайомий вам, якщо ви перевіряли вебхуки Stripe. Відхиляти застарілі часові мітки має одержувач.
3. Ліміти запитів для кожного робочого простору за тарифним рівнем
Одних лімітів за IP замало проти адрес, що змінюються, тому визначальною одиницею має бути робочий простір. API тримає token bucket для кожного робочого простору з розміром за тарифом (безкоштовний, платний, business) і повертає 429 із X-RateLimit-Scope: workspace. Якщо пошук рівня завершується помилкою, застосовується безкоштовний рівень. Нові безкоштовні робочі простори перші 24 години перебувають у рівні «інкубатор»: за замовчуванням 10 посилань на день, CAPTCHA під час створення в сесії браузера й примусове синхронне сканування. Звичайні робочі простори отримують 1000 посилань на день.
4. Ключі API, хешовані із серверним pepper
Зберігати ключі у відкритому вигляді неприпустимо. Ми зберігаємо HMAC-SHA256(pepper, key) і показуємо токен у відкритому вигляді один раз під час створення. Під час пошуку вхідний bearer-токен хешується, і порівнюються хеші. Швидкий keyed-хеш добре підходить для довгих випадкових токенів, а pepper означає, що викрадену базу даних саму по собі не можна підібрати перебором. Ключі можуть мати expires_at; ротація ручна (див. розділ про прогалини).
5. Паролі посилань, хешовані Argon2id
Паролі посилань зберігаються як хеші Argon2id (64 MiB, 2 ітерації, 4 потоки, кодування PHC), а API ніколи не повертає хеш, лише булеве значення password_set. Є реальна прогалина: станом на 2026-10-24 публічний сервіс редиректу не має запиту пароля. Перевірка відбувається в API пошуку (заголовок X-Password, відповідь 401 з password_required: true), тож пароль на посиланні поки що не закриває доступ тим, хто клікає коротку URL. У нашій статті про посилання під паролем описано, що працює сьогодні. Якщо потрібен жорсткий контроль доступу, скористайтеся наскрізно зашифрованим режимом посилань або поставте автентифікацію на адресі призначення.
6. Термін дії та ліміти кліків
Старі кампанійні посилання залишаються корисними для зловмисників довго після завершення кампанії. Посилання приймають expires_at і max_clicks, обидва застосовуються на шляху редиректу. Про життєвий цикл читайте в матеріалі термін дії посилань і посилання, що самознищуються.
7. Журнал аудиту, який ви можете прочитати самі
Дії, що змінюють дані, записують події аудиту, які можуть читати учасники з правом на аудит за адресою GET /v1/workspaces/{id}/audit. Кожен рядок пов'язаний із попереднім через SHA-256 (prev_hash, entry_hash), тож редагування чи видалення виявляє завдання перевірки ланцюга. Пакет доказів для комплаєнсу (.../compliance/evidence.zip) містить останні 90 днів подій у форматі CSV. Строк зберігання задається для кожного робочого простору.
8. Списки дозволених IP
Якщо весь легітимний трафік API надходить із відомих діапазонів, список дозволених адрес робить витік ключа значно меншою проблемою. Кожен робочий простір може зберігати префікси CIDR; коли список увімкнено й він непорожній, запити з інших адрес отримують 403 навіть із чинним ключем. Адреса клієнта береться з X-Forwarded-For, якщо він є, тож переконайтеся, що ваш ланцюг проксі саме такий, як ви очікуєте.
9. Фільтрація ботів на шляху редиректу
Edge зіставляє User-Agent зі списком сигнатур краулерів, ботів попереднього перегляду, моніторів доступності та HTTP-клієнтів (близько 45 записів) і вважає порожній User-Agent ботом. Збіглі запити все одно отримують редирект; пригнічується лише подія кліку. Окремий оцінювач позначає кліки підозрілими, не блокуючи їх, коли спрацьовують два або більше м'яких сигнали (немає User-Agent, немає Accept-Language, сплеск з одного IP).
10. SSO і SCIM
Конфігурація SSO для кожного робочого простору, виявлення домену за GET /v1/sso/discover?domain= і вебхук SCIM дають змогу провайдеру ідентифікації керувати входами та деактивацією. Elido не бачить пароля.
Перевірка за одну днину
Для первинної оцінки скорочувача тест на проникнення не потрібен. Створіть безкоштовний обліковий запис, скоротіть URL, яким ви керуєте, потім прочитайте заголовки відповіді та документацію API. Створіть ключ API і подивіться, чи показує його панель ще раз. Запустіть тестовий вебхук і перегляньте заголовки підпису. Потім надішліть таблицю нижче на адресу підтримки постачальника й засічіть час відповіді.
Запитання до будь-якого постачальника
| Запитання | Як звучить хороша відповідь |
|---|---|
| Як зберігаються ключі API? | Алгоритм і чи використовується pepper |
| Як підписуються вебхуки? | HMAC із часовою міткою всередині підписаного рядка |
| Які стрічки загроз скануються? | Названі стрічки та графік повторного сканування |
| Чи ліміти для кожного робочого простору? | Так, і вони різняться за тарифом |
| Чи може адмін читати журнал аудиту? | Самостійно, з експортом, стійкий до підробок |
| Хешування паролів посилань? | Argon2id або bcrypt, ніколи не MD5 чи SHA-256 |
| Фільтрація ботів? | Задокументована, пригнічуються події, а не редиректи |
| Список дозволених IP для робочого простору? | Так, на основі CIDR |
Якщо постачальник не може письмово відповісти на питання першого, другого, третього та п'ятого рядків протягом робочого дня, документації, імовірно, не існує.
Де Elido ще посилює захист
- Обмеження швидкості працює в межах процесу. Бакети зберігаються в пам'яті кожної репліки, тож за N реплік робочий простір може перевищити ліміт до N разів. Спільний лімітер запланований, але ще не випущений.
- Немає WAF. У нас є ліміти запитів, фільтрація ботів і блоклист доменів. Перед публічними посиланнями з великим обсягом поставте зовнішній WAF.
- Повторні сканування періодичні, а не миттєві. Обхід запускається кожні шість годин і повторно перевіряє посилання, які не скановано останні сім днів; нове позначене посилання автоматично призупиняється, а власника сповіщають. Посилання може залишатися активним кілька днів після того, як стрічка його внесла.
- Ротація ключів ручна. Існує лише необов'язковий
expires_at. - Сертифікації поки немає. Сертифікації ISO 27001 немає; SOC 2 у підготовці.
- IP-адреси усікаються, а не видаляються. Edge обрізає їх до /24 (IPv4) або /48 (IPv6), але місто, координати та повний user agent усе ще зберігаються з кожним кліком. Що це означає для вас, описує наш чекліст GDPR.
Дві суміжні статті: вразливості відкритого редиректу і QR-фішинг.
Пов'язане в блозі
Поширені запитання
Як зрозуміти, що скорочувач посилань безпечний?
Попросіть конкретику письмово й порівняйте її з десятьма засобами контролю з цього чекліста. Безпечний скорочувач може назвати стрічки загроз, за якими перевіряє адреси призначення, пояснити, як зберігає ключі API (назвати алгоритм, а не просто запевнити), підписувати вебхуки HMAC із прив'язкою до часової мітки, обмежувати запити для кожного робочого простору, вести журнал аудиту, який можна прочитати без звернення до підтримки, і описати, що відбувається, коли посилання стає шкідливим після створення. Туманні відповіді на кшталт «ми серйозно ставимося до безпеки» - тривожна ознака.
Чи можна використати скорочувач посилань для фішингу?
Так. Коротке посилання приховує адресу призначення до кліку, тому зловмисники користуються скорочувачами, щоб ховати сторінки для викрадення облікових даних і завантаження шкідливого ПЗ. Саме тому серйозний провайдер перевіряє кожну адресу призначення за стрічками загроз під час створення, пізніше повторно скануює збережені посилання, обмежує швидкість створення посилань новими обліковими записами й швидко прибирає шкідливі посилання після скарги.
Як скорочувач посилань має зберігати ключі API?
Ніколи у відкритому вигляді. Мінімум - односторонній хеш, а краще підмішувати серверний секрет (pepper), щоб витік самої бази даних не дозволив підібрати ключі офлайн. Elido зберігає HMAC-SHA256 кожного ключа з серверним pepper і показує токен у відкритому вигляді лише один раз під час створення. Ключі API - це довгі випадкові рядки, тому для них доречний швидкий keyed-хеш; повільні хеші паролів, як-от Argon2id, важливі для секретів, які вигадує людина, зокрема паролів до посилань.
Що має містити підписаний вебхук?
Підпис, обчислений і за часовою міткою, і за сирим тілом запиту, а також часову мітку в окремому заголовку, щоб отримувачі могли відхиляти застарілі доставки. Якщо підписувати лише тіло, зловмисник може нескінченно повторювати перехоплений запит. Elido надсилає v1=HMAC-SHA256(secret, timestamp.body) у X-Elido-Signature (також доступний під псевдонімом X-Webhook-Signature) разом із X-Webhook-Timestamp, а під час ротації секрету додає X-Elido-Signature-Previous, щоб отримувачі могли змінити ключ без простою.
Чи має Elido SOC 2 або ISO 27001?
Поки що ні. Elido не сертифіковано за ISO 27001, а SOC 2 перебуває на етапі підготовки, тож звіту, який можна передати, сьогодні немає. Є інженерна основа засобів контролю з цієї статті, зокрема стійкий до підробок ланцюг хешів у журналі аудиту та експорт доказів за 90 днів. Якщо сертифікація є жорсткою вимогою ваших закупівель, вважайте це поточною прогалиною й питайте до купівлі.
Чи потрібен скорочувачу посилань вебзастосунковий брандмауер?
Шлях редиректу в скорочувача вузький: знайти код і повернути редирект. Це обмежує ризик ін'єкцій, але не усуває DoS-трафік і зловживання. Elido застосовує ліміти запитів, фільтрацію ботів і стрічку блоклиста на шляху редиректу, але власного WAF прикладного рівня не має. Для публічних посилань з великим обсягом краще поставити перед edge зовнішній WAF або набір правил CDN.
Спробуйте Elido
Вставте URL - отримайте коротке посилання
Без реєстрації. Посилання живе 30 днів. Зареєструйтесь, щоб зберегти назавжди.
Без реєстрації. Зареєструйтеся безкоштовно і отримайте 50 посилань на місяць.
