Неизвестные параметры URL
Неизвестные параметры вроде id, token, cid, ref и session нужно проверять по назначению, потому что они могут быть нужны для страницы, отслеживания или индивидуального доступа.
В URL бывают не только параметры с понятным смыслом.
Есть значения, назначение которых легко предположить как отслеживание, например utm_source или gclid, но есть и id, token, cid, source, ref, session, которые трудно оценить только по виду.
Когда вы видите неизвестный параметр, опасно думать и "я не знаю, значит можно удалить", и "я не знаю, значит оставлю".
В анонимности важно разделять, нужен ли этот параметр для отображения страницы или он служит для идентификации пользователя и маршрута.
В этой статье разбирается, как читать неизвестные параметры URL и как принимать решение.
Что такое неизвестный параметр
Неизвестный параметр - это значение внутри URL, назначение которого трудно определить только по имени.
Например, такая строка:
sample.test/page?id=123&cid=abc&token=xyz
Здесь sample.test - строка для объяснения.
id=123 может быть ID статьи. Может быть ID товара. Может быть ID конкретного пользователя.
cid=abc может быть ID кампании. Может быть ID клиента.
token=xyz может быть временным правом доступа или значением, близким к сессии.
По одному имени решить нельзя.
Поэтому неизвестные параметры рассматривают как объект, где нужно "предположить смысл, проверить поведение и при необходимости не делиться".
Думать по классификации
Неизвестные параметры легче оценивать, если разделить их на несколько видов.
| Вид | Пример | Обращение |
|---|---|---|
| Значение, нужное для отображения | id, page, q, category | При удалении может измениться содержание |
| Значение, похожее на отслеживание | cid, campaign, source, ref | Может быть не нужно для передачи |
| Значение, похожее на индивидуальный идентификатор | uid, user, visitor, client | Становится признаком, близким к пользователю или устройству |
| Значение, похожее на авторизацию или временную ссылку | token, session, sid, key | В первую очередь выбирать не публиковать |
| Непонятное длинное значение | случайные буквы и цифры | Осторожно, потому что может быть индивидуально выданным |
Эта классификация не дает полного определения.
Но она безопаснее, чем вставлять URL без размышления.
Особенно осторожно обращаются со значениями вроде token, session, sid, key. Это может быть URL, связанный не с публичной ссылкой, а с состоянием входа или временным доступом.
Проверять, можно ли удалить
Неизвестные параметры проверяют, реально удаляя их.
Но если проверять только в обычном браузере, где вы вошли в аккаунт, можно ошибиться.
| Порядок | Что проверять | Причина |
|---|---|---|
| 1 | Посмотреть имя параметра | Предположить, ближе ли он к отслеживанию, отображению или авторизации |
| 2 | Удалять по одному | Разделить значения, нужные для отображения страницы |
| 3 | Открыть в другом браузере | Уменьшить влияние Cookie и состояния входа |
| 4 | Открыть в состоянии выхода из аккаунта | Проверить, виден ли URL другим людям |
| 5 | Если остается неизвестное длинное значение, не делиться | Избежать индивидуальной ссылки |
Если удалить все сразу, будет непонятно, какое значение было нужным.
Удаление по одному облегчает разделение нужных для отображения и ненужных значений.
Где неизвестные значения становятся опасными
Проблема неизвестного параметра не только в том, что само значение может быть читаемой персональной информацией.
Даже случайные на вид буквы и цифры внутри сервиса могут связываться с конкретным пользователем, рассылкой, приглашением, кликом или сессией.
| Ситуация | Что происходит |
|---|---|
| Индивидуальная ссылка из письма | Значение может показывать, кому отправили письмо |
| Пригласительная ссылка | Иногда записываются пригласивший или приглашенный |
| Ссылка ограниченного доступа | Видит только тот, кто знает URL |
| Страница после покупки или заявки | В URL может оставаться информация, близкая к заказу или заявке |
| Админка или превью | Можно поделиться экраном, который не предназначен для публикации |
Если поделиться таким URL через анонимный аккаунт, корреляция возникает на стороне URL, даже если сеть скрыта.
VPN и Tor не удаляют идентификаторы внутри URL.
Признаки, что делиться нельзя
Среди неизвестных параметров есть такие, где лучше избегать передачи еще до попытки удалить.
В следующих случаях лучше не пытаться насильно привести URL в порядок, а искать другую ссылку: публичную страницу или URL через официальную кнопку "поделиться".
| Признак | Причина |
|---|---|
| Есть token, session, sid | Может быть близко к временному состоянию или авторизации |
| URL чрезвычайно длинный | Может содержать много индивидуального состояния или отслеживания |
| Открывается только при входе | Может быть личной страницей, невидимой другим людям |
| Есть слова, обозначающие управление, редактирование, превью | Это может быть не публичный URL |
| При удалении содержание сильно меняется | Значение тесно связано с содержанием страницы |
В анонимности важно не считать неизвестное безопасным.
"Не понимаю, но, наверное, нормально" - опасное решение.
Частые заблуждения
О неизвестных параметрах есть частые заблуждения.
Первое: "Если это случайные буквы и цифры, значит смысла нет".
На практике именно случайные на вид значения часто используются внутри сервиса как индивидуальные идентификаторы.
Второе: "Если там нет моего имени, проблемы нет".
В анонимности проблема не только в имени. Индивидуально выданная ссылка, ID рассылки, ID приглашения и ID сессии связываются с журналами сервиса.
Третье: "Если укоротить URL, он безопасен".
Сокращенный URL только делает вид короче. Если в конечном URL остаются неизвестные параметры, проблема не исчезла.
Практическое решение
При виде неизвестного параметра действуют так.
- Проверить, похоже ли значение на нужное для отображения
- Значения, похожие на отслеживание, реферал или кампанию, считать кандидатами на удаление
- Для
token,session,sid,keyв первую очередь выбирать не делиться - После удаления открыть заново в другом браузере
- Если остается неизвестное значение, искать официальный URL для публикации
Такое решение может казаться хлопотным.
Но URL, которым делятся анонимно, является частью текста публикации.
Если вы перечитываете текст, нужно перечитать и URL.
Итоги
Неизвестный параметр URL - это значение внутри URL, назначение которого трудно определить только по имени.
Значения вроде id, cid, ref, token, session нужно проверять: связаны ли они с отображением страницы, отслеживанием, индивидуальной идентификацией или авторизацией.
Неизвестное значение нельзя сразу считать ни безопасным для удаления, ни безопасным для сохранения.
Удаляйте по одному, проверяйте в другом браузере или в состоянии выхода из аккаунта, уменьшайте значения, ненужные для передачи.
Особенно при значениях вроде token, session, sid, key в первую очередь выбирают не делиться.
Маленькие значения внутри URL могут связываться с журналами сервиса и временем доступа.
В анонимности важно не оставлять непонятные значения без внимания.
