Адміністратори груп в vk завжди були у відкритому доступі

Раніше я вже писав один пост на geektimes про те, що істинно анонімних пабликов в ВК не було до 29.10.14. Але як виявилося, я помилявся на рахунок дати. І не до кінця усвідомив всю суть існуючої проблеми анонімності.

Більшість користувачів соціальної мережі «ВКонтакте» знайомі з принципом роботи груп та публічних сторінок. Є один творець, модератори і передплатники. В залежності від налаштувань, деякі з них мають можливість розміщувати власні публікації у стрічці співтовариства. Логічно, що сервера будуть зберігати дані про кожного хто брав участь при викладанні повідомлення. Найдовша ланцюжок складається з двох елементів: користувач написав повідомлення в блок «запропонувати новину» і модератор, чиєю рукою було поставленно підтвердження. Виходячи з цього, можна припустити, що ці дані можуть бути отримані через api.

Звернувшись до документації легко з'ясувати, що більшість методів пов'язаних з загальнодоступними об'єктами (публікації на стіні, фотографії, документи, ...) у відповіді повертають результат запиту і два додаткових масиву (якщо при запиті вказати extend=true):

response: {
items: [],
profiles: [{
id: 1,
first_name: 'Pavel',
last_name: 'Durov',
sex: 2,
screen_name: 'durov',
photo_50: 'http://cs629231.v...543/FfB--bOEVOY.jpg',
photo_100: 'http://cs629231.v...542/fcMCbfjDsv0.jpg',
online: 0
}],
groups: []
}

За назвами масивів зрозуміло, що вони повинні містити і для чого потрібні. При запиті будь-якого повідомлення зі стіни спільноти, ми отримаємо саме повідомлення, користувача, який його написав (+ модератор), і об'єкт самої групи. Все гранично просто і прозоро. Але в багатьох спільнотах є поняття анонімності. Наприклад, групи в яких люди розповідають про своїх життєвих взгодах і негаразди, через функціонал «запропонувати новину» з позначкою «анонімно». Модератор, перед публікацією поста, зніме галочку з відповідного чекбокса і аккаунт справжнього автора не побачите ніде. Або ж публіцист, який бажає залишатися в тіні і не розкривати особистості, в налаштуваннях публічної сторінки прибере всі посилання і відмітки про творця.

У перший раз я зіткнувся з тим, що той самий найпростіший запит wall.get повертає в списку користувачів людини з першого прикладу. Про це я писав(посилання в шапці). І ось, після двох років я просто вкотре звернувся до документації з інтересу. На цей раз я дивився метод newsfeed.getComments без якихось злих намірів. Цей метод повертає пости в яких поточний користувач залишив коментар або іншим чином підписався на повідомлення(розділ «Мої новини -> Коментарі»). Отримавши необхідні мені результати я звернув увагу на те, що у відповіді сервера в нещасливому масиві profiles лежить 5 акаунтів. Навіщо вони потрібні і звідки вони беруться слід негайно з'ясувати. Для тестів я брав анонімну групу свого міста, залишав коментар під останнім постом і дивився на відповідь сервера, за запитом до цього методу.

Виявилося, що кожен з цих користувачів мав безпосереднє відношення до посту. Першим був той, хто опублікував новину, тобто людина з правами не нижче модератора, другим був той, хто «запропонував новину», якщо він взагалі був, і решта троє — прокоментували останні запис. Після перевірки на тих групах, в яких всі ці дані були «сховані» налаштуваннями приватності, все підтвердилося. Все саме так і було: все, що ховалося налаштуваннями приватності, було достпуно трьома кліками.

Перше, що я хотів зробити — повідомити про це непорозуміння в баг-трекер ресурсу. Де мене зустріла стрічка оброблюваних в даний момент помилок пов'язаних з дрібними недоліками a'la «у вас косяк з версткою, два пікселя зайві». Через десять хвилин пошуку я зневірився самостійно знайти кнопку «повідомити про дірку в безпеці розміром з ангар для боїнга про помилку». Хлопці з форумів пропонували запускати форму через веб-консоль, але ця форма не відправляла даних посилаючись на access denied. Звертатися в звичайну техпідтримку з-за минулого разу не хотілося, тим більше, що під час тестування new.vk.com там відповідають за 2-3 дні. Тому я вирішив написати того, кому, як я думав, це буде цікаво, тим самим привернути увагу на помилку. Вибір припав на vc.ru як на найдоступніший в плані спілкування — у них всі кнопки на сайті на місці. Тим більше, що в пам'яті спливла стара публікація про хлопця, який отримав грошову винагороду за те, що зміг дізнатися адміністратора групи через посилання на репост.

Поки чекав від них відповіді, досліджував всі можливі варіації використання методу. Обмеження все ж таки були, це те, що пізнати цих користувачів можна було тільки в тому випадку, якщо запис лежить на стіні спільноти, в співтоваристві дозволені коментарі. Саме це обмеження і завадило мені довести комусь із vc, що я не просто вигадую хто яку групу модерує. Вони попросили сказати, хто адмін їх групи, а у них коментарі відключені. Я просто став завалювати їх списком модераторів відомих новинних спільнот: «Перший канал», «РБК», «Известия» та інші. Попутно в свою групу без передплатників скидав ті ж посилання, щоб не загубити разом з листуванням і похвалитися всім своїм двом друзям. Не врахував того факту, що посилання в постах групи мають властивість сповіщати зазначених у них людей. І мені написав один із згаданих модераторів з проханням розповісти як я цього домігся. Я темно до останнього, чекаючи, що vc хоч якось допоможе з закриттям діри. Через дві години vc мені сказали, що вони повідомили в вк, а самі нічого робити не будуть.

Підсумок: мій аккаунт з усіма контактами, портфоліо, колекцією музики, нотатками і закладками канули в небуття з підписом «заблокований назавжди». Мої групи видалили, записи потерли, дірку закрили кардинально, у profiles тепер взагалі нічого не виводиться. Єдине, що в мене залишилося від цього випадку — небажання повідомляти про таке взагалі кого-небудь.

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.