Как поделиться своим плейлистом в Яндекс.Музыке? Например, тем, что у всех есть по умолчанию: понравившиеся треки.
Зайдём в веб-версию. Плейлист. Подробности. Кнопка «поделиться». Нам выдаётся ссылка вида
https://music.yandex.ru/playlists/lk.UIDГде UID — уникальный идентификатор плейлиста. Интересно: эта же ссылка у меня в адресной строке браузера. А что вообще произошло, когда я нажал на «поделиться»? Я опубликовал эту страницу? Никаких кнопок для управления приватностью не вижу. Получается, мои избранные теперь всегда публичны: достаточно знать UID? Или, может, я не нашёл, где этим управлять? Смотрю в разделе помощи Яндекса:
Новый плейлист, созданный на смартфоне, по умолчанию является приватным, но после того, как вы поделитесь им с другом, он станет доступен и другим пользователям Яндекс Музыки. Читайте подробнее в нашей статье про «Приватность».
Больше ничего нет. «Статью про приватность» предлагаю вам оценить самим, перейдя по ссылке. Вероятно, нажав на кнопку «поделиться», я навсегда разрешил доступ по ссылке к лайкнутым мною трекам.
Однако потом я всё-таки нашёл, как управлять приватностью плейлистов: под кнопкой «поделиться» есть тумблер «приватный плейлист». Но есть нюанс: для плейлиста с лайкнутыми треками его нет. Контроль приватности есть только для пользовательских плейлистов. Интересно. Может быть, нажатие «поделиться» на самом деле никакого изменения в доступах не дало: мне просто выдали текущий адрес?
Я поэкспериментировал со второго аккаунта, и действительно: достаточно скопировать ссылку из адресной строки, она и так доступна без авторизации.
Ну и что?
Ну, да, если смотреть по UX, имеем небольшой IDOR. Наверное, я бы не писал пост, если бы не одна важная деталь. Если вы попробуете поделиться плейлистом из мобильного приложения, а не через веб, ссылка для плейлиста будет совсем иного вида:
https://music.yandex.ru/users/LOGIN/playlists/3Где LOGIN — это имя аккаунта, указанное при регистрации Яндекс ID в поле «Придумайте логин». Это же имя является логином для почтового ящика Яндекс Почты. Идентификатор «3», кажется, у всех является локальным идентификатором для плейлиста с лайкнутыми треками (попросил проверить у нескольких знакомых). При переходе по такой ссылке мы попадаем на страницу, после загрузки которой браузер сразу перенаправляет пользователя на адрес обычного вида. Это реализовано «в лоб», через указание тега meta в заголовке страницы:
<meta
id="__next-page-redirect"
http-equiv="refresh"
content="0;url=/playlists/lk.UID"/>Так что, судя по всему, такая ссылка будет эквивалентна полученной в веб-версии сервиса. Поэтому любой кто знает ваш почтовый адрес / логин от вашего аккаунта может посмотреть, какие треки вы на нём лайкали. И я не отыскал ни одного способа это предотвратить.
Заключение
Позже я нашёл и другие статьи на эту тему: вот от 2023, вот от 2024. Оказывается, что похожее поведение было и раньше, однако в настройках тогда была возможность ограничить доступ ко всем плейлистам на аккаунте. Сейчас веб-версия на вид безопаснее, но фактически, проблемы с конфиденциальностью ухудшились: у пользователей веба может создаться иллюзия ограничения доступа по UID, а способа ограничить доступ, пусть даже топорного, теперь нет.
Возможно, многих не волнует, могут ли третьи лица смотреть их любимые треки. Осадочек после этого мини-расследования у меня остался не от того, что нет инструментов контроля конфиденциальности, а от того, что текущий UX неявно вводит пользователя в заблуждение относительно конфиденциальности, особенно если этот пользователь не подкован технически: пользователь совершает отдельные действия, направленные на ручное предоставление своих личных данных, и ему ничего не указывает на то, что эти данные могут быть случайно им распространены.