{"id":2175,"url":"\/distributions\/2175\/click?bit=1&hash=803b6e1bcbd9dfc4ba9456fda887a878c80d24df8d3a575913b14876e18923a5","title":"TJ \u0437\u0430\u043a\u0440\u043e\u0435\u0442\u0441\u044f 10 \u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044f \u2014\u00a0\u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0439\u0442\u0435 \u0430\u043d\u043e\u043d\u0441 \u0441 \u0434\u0435\u0442\u0430\u043b\u044f\u043c\u0438","buttonText":"\u0427\u0438\u0442\u0430\u0442\u044c","imageUuid":"d1d355d8-93a3-5140-aeae-14b03046b760","isPaidAndBannersEnabled":false}

Как работает прокси-сервер «ВКонтакте» на Android

Читатель TJ из Украины разбирается в нюансах.

Тихо, без лишнего шума, в клиент для Android встроили прокси. Актуально для пользователей Украины. Я хотел бы рассмотреть как он работает, так как уже более двух лет занимаюсь reverse engineering и сам живу на Украине.

Зачем это нужно?

На территории Украины был подписан указ и согласно ему провайдеры были вынуждены заблокировать доступ к «ВКонтакте». Основные и крупные провайдеры блокировку уже совершили. Но похоже сайт не захотел с этим смириться и в версии 4.10.0 встроил прокси. Рассмотрим вкратце, как это работает с технической стороны.

Техническая информация

При запуске приложения, идет обращение к API методу ВКонтакте с названием utils.getProxiesPreferences, обращение идет с входящими параметрами: id пользователя и массив logInfo. В массив logInfo входят параметры:
country
locale_country
locale_display_country
locale_display_language
locale_language
location_latitude
location_longitude
address_country_code
address_country_name.

Очевидно, что на их основании метод решает, что вернуть. И кстати из этих данных можно сделать вывод, что функция таки для Украины и прочих стран которые решаться на покушение. Метод API возвращает три значения: 1, 2, 3 с ключом "type". В приложении этим значениям дано имя: TYPE_NO_PROXY, TYPE_USE_PROXY, TYPE_NO_PROXY_WITH_MESSAGE соответственно. Первая константа означает, что прокси использовать не нужно, вторая — нужно. Третья — до конца не понятно, выводится сообщение и с забавным emoji. Вероятно чтобы сообщить, что с прокси что-то не так.

Тот самый забавный emoji

Нюансы работы

Выгрузка файлов, а точнее «аттачей» не работает. Так же могут наблюдаться проблемы с автоматическим включением прокси.

Скриншот с неработоспособностью выгрузки файлов

Так же важно отметить, что если отключить настройку отсылки местоположения, которая якобы для новостей, пункт с настройкой прокси пропадет.

Тот самый пункт

Самая главная проблема

Если Вы только установили и запустили приложение в Украине и если провайдер включил блокировку — авторизироваться без VPN Вы не сможете. Хотя может быть, это сделано ради безопасности, дабы логин и пароль не проходили через прокси или просто недоработка. Но все равно очень странно.

И повторно стоит отметить, что автоматическое включение работает очень не стабильно. Пункт то пропадает, то появляется и настройка работает не с первого раза.

Итог

Все же функция довольно сырая. Вероятно её только тестируют, однако простым пользователям в Украине её уже начинают включать. Лично я предпочитаю VPN.

0
32 комментария
Написать комментарий...
Солидный шар
живу на Украине

ой пиздишь

Ответить
Развернуть ветку
Испанский американец

может редакция поправила?

Ответить
Развернуть ветку
Открытый волк

Да, редакция поправила. Изначально писал "в".

Ответить
Развернуть ветку
Белорусский Мика
Ответить
Развернуть ветку
Газетный чайник
Ответить
Развернуть ветку
Валютный шар

Комментарий недоступен

Ответить
Развернуть ветку
Молодежный кот
Ответить
Развернуть ветку
Поперечный кавалер

Нож в спину.

Ответить
Развернуть ветку
Газетный чайник

на спину

Ответить
Развернуть ветку
Вторичный кубок

Зачем в статье на тж тонна никак не объясненных технических деталей?

Ответить
Развернуть ветку
Московский мангал

Показать превосходство над тупыми смертными, не знающими слов API, массив и входящие параметры.

Ответить
Развернуть ветку
Открытый волк

Даже в мыслях подобного не было. Для меня
это обыденные слова.

Ответить
Развернуть ветку
Открытый волк

Техническая сторона на то и техническая, чтобы объяснить как есть. Любое непонятное слово гуглится.

Ответить
Развернуть ветку
Вторичный кубок

Какую ценность несёт упоминание имени метода API, имен переменных в loginfo, имен файлов, имен ключей?

Ответить
Развернуть ветку
Открытый волк

Это пруф на то, что точно используется местоположение и точно определяет ВКонтакте включать прокси или нет. А если еще и знать элементарный английский (или использовать Google Translate) можно точно понять какие данные необходимы. Вопрос из разряда: какая ценность указания номинала на купюре.

Ответить
Развернуть ветку
Вторичный кубок

Пруфы можно было не указывать/разместить в другом месте. А результаты анализа пересказать, вот мой беглый take on второй параграф:

"При логине приложение анализирует данные о географических координатах, языке, стране и т.д. и на основании этих данных принимает решение о том, нужно ли использовать прокси. Это говорит о том, что функция прокси введена скорее всего в ответ на блокировки в Украине. В некоторых случаях приложение возвращает печальную эмодзи, причем название соответствующего ключа свидетельствует о том, что, скорее всего, это происходит при неудачном подключении к прокси.

Подробная версия анализа с техническими деталями размещена вот тут - geektimes.ru/djjsjsjs";

Мб я ошибся по сути, но я и не претендую на то, что я все понял.

Читается проще, ненужной хуйни меньше, кому интересно, тот прочитает по ссылке. Не понимаю, зачем усложнять материал, если это усложнение не несёт никакого дополнительного смысла. Это как писать вместо 1+1 2^0 + 2^0.

Ответить
Развернуть ветку
Необыкновенный бинокль

Комментарий недоступен

Ответить
Развернуть ветку
Московский мангал

Эдуард, статья хорошая, да и мы здесь в статью о Яндексе не будем вбивать поисковые запросы. Но, всё же, раз пишете не на Хабре, не поленитесь чуток загуглить за нас. И то, что Вы расписали в комментариях с RC, как раз прекрасно бы вписалось в статью. И не примите шутки за претензию. Так, пожелание.

Ответить
Развернуть ветку
Прикладной Илья

Комментарий недоступен

Ответить
Развернуть ветку
Громкий паук например

Битый небитого

Ответить
Развернуть ветку
Водный Даниль

скрин вк из 2007?

Ответить
Развернуть ветку
Валютный Женя

Встроенный прокси-сервер возвращает стену )

Ответить
Развернуть ветку
Громкий паук например

Для Украины спорная полезность, еще и с такими настройками. Кто хотел остаться в сети, поставил себе впн-клиенты, благо в маркете полно их. Новых пользователей с таким геморром все равно не получишь. Да и старым нафиг не впало - сын, например, снес приложение ВК - все равно там почти никого нет.

Ответить
Развернуть ветку
Умственный Мурод

На Украине, в Белоруссии, Элон и другие зашквары редакции.

Ответить
Развернуть ветку
Данный якорь

Странно, у меня получилось включить эту настройку с помощью блокировки vk.com/ping.txt и настройкой редиректа с google.com на google.com.ua

Ответить
Развернуть ветку
Открытый волк

Кстати да, тоже как вариант. Но проверка на редирект делается после запроса к API. Если API прислал TYPE_NO_PROXY, проверка на редирект делаться не должна. Очень странно.

Ответить
Развернуть ветку
Данный якорь

Ну а как API ответит на запрос если он под блокировкой. И насколько я понял клиент получает IP прокси сервера через сервисы Google. Что бы всегда иметь способ доставки.

Ответить
Развернуть ветку
Открытый волк

Да, используется Firebase.

Ответить
Развернуть ветку
Данный якорь

А сорри, понял, да не логично получается, что после ответа он проверяет дальше.

Ответить
Развернуть ветку
Густой ящик

Смешно что ВК что-то добавляет в приложение когда пригорит. Сама сеть и приложения находятся на уровне 2011 года, нихуя не поменялось, все такое же хуевое по UX

Ответить
Развернуть ветку
Редкий Влад
сам живу на Украине
запустили приложение в Украине

Так как правильно то, "на" или "в"? Путаюсь каждый раз.

Ответить
Развернуть ветку
Веселый шмель

И то и то применимо в примерно равной степени.

Ответить
Развернуть ветку
Читать все 32 комментария
null