Зайти вк без пароля и логина: Вход без пароля и логина на мою страницу В Контакте

Авторизация в VK API с помощью логина и пароля / СоХабр

Давно хотелось написать какое-нибудь приложение, используя VK API. Решено было написать некий каркас, добавляя плагины к которому можно было бы реализовать какие-то мелкие задачи, которые нужны в данный момент: от скачивания музыки до банального поддержания аккаунта онлайн. Запускать данное творение планировалось как на сервере, так и на ПК. С проблемами, вставшими на моем пути во время разработки, включая озвученную в заголовке, я и хотел бы вас познакомить.

Шаг 0. Изучение документации

Итак, задача поставлена, теперь необходимо изучить платформу VK API. Ознакомившись с методами было замечено, что многие из них требуют получения access_token, или, проще говоря, авторизации пользователя.

Способов авторизации было предложено три:

  1. OAuth-авторизация
  2. Прямая авторизация
  3. Авторизация с использованием официального приложения (предоставляется в SDK)

Теперь подробнее о методах в порядке возрастания их полезности:

Авторизация с использованием официального приложения

Приложение состыковывается с официальным приложением для Android или iOS, которое дает ему интерфейс для взаимодействия с API.
Собственно, без комментариев, способ совсем для других платформ и задач.

OAuth-авторизация

Необходимо открыть страницу авторизации в браузере, где пользователь, если он еще не авторизован на сайте, введет свой логин и пароль и разрешит доступ к его аккаунту.

Этот способ не понравился сразу по двум причинам: во-первых, токен таким образом необходимо получать каждые 24 часа, во-вторых, для его получения нужно каждый раз заходить на сервер, открывать lynx, авторизовываться и разрешать доступ. Не очень удобно. Есть, конечно, такой вариант, но всё-таки решено было поискать что-то другое.

Прямая авторизация

Передача логина и пароля непосредственно GET-запросом на определенный URL. Токен в итоге получается бессрочный и без привязки по IP.
Идеально подходящий, казалось бы, способ, если бы не одно «но»:

Внимание! Доступ к этому типу авторизации может быть получен только после предварительного согласования с администрацией ВКонтакте.

Для подачи заявки на получение доступа Вам необходимо обратиться в службу поддержки по адресу vk.com/support, указав ID Вашего приложения.

В настоящий момент эта возможность предоставляется только для платформ, не поддерживающих стандартную авторизацию. В заявке необходимо кратко описать функционал приложения.

Объяснять, что пишу просто каркас для любой своей будущей идеи, думаю, было бессмысленно, поэтому пришлось искать какие-то обходные пути.

Шаг 1. Обходные пути

Расстроившись тем фактом, что простым смертным получить доступ к прямой авторизации достаточно сложно, я уже чуть было не похоронил свою идею.
Однако, в один прекрасный день, во время чтения ленты новостей в официальном приложении VK на планшете под управлением Windows 8, в голову пришла мысль: а почему бы не взять access_token из этого приложения, он ведь бессрочный и без привязки к IP. Ну, или еще круче, перехватить app_id и app_secret

во время авторизации официального приложения. Всё бы ничего, если бы не авторизация, конечно же, по https протоколу.
Загоревшись идеей кражи app_id и app_secret пришла в голову еще одна идея — декомпилировать клиент и попробовать поискать там.
Сказано — сделано: наверняка metro-приложение VK написано на C#, значит нужно найти C# декомпилятор. Первым в Google нашёлся JetBrains dotPeek. Хорошо, попробуем.
Далее неплохо было бы найти само приложение VK. После не очень долгого поиска было выяснено, что metro-приложения в Windows 8.1 хранятся в скрытой папке C:\Program Files\WindowsApps.
Отлично! Пытаемся зайти и видим:

Мы, вроде бы, с правами администратора, нажимаем на «Продолжить»:

Весело, зайдём на вкладку «Безопасность», там нам предложат задать особые разрешения в «Дополнительно», зайдем в «Дополнительно»:

Поменяем владельца на себя, щелкнув на «Изменить», введя в диалоге свой email учетной записи microsoft, либо имя локального пользователя и щелнув на «Проверить имена». Сохраним всё это и теперь мы можем зайти в папку с нашими metro-приложениями. Ищем папку с VK, забираем оттуда VK.exe и скармливаем его нашему декомпилятору. Структура приложения видна для нас идеально, все названия функций и классов сохранились, недолгим гулянием по классам находим функцию Authorize, содержащую строку req, в которой есть два замечательных параметра:

Вуаля! client_id и client_secret наши.

client_id и client_secret для копирования

client_id=3697615
client_secret=AlVXZFMUqyrnABp8ncuU

Теперь мы можем авторизовываться, используя прямую авторизацию!

Попользовавшись данными client_id и client_secret мне все-таки стало интересно, что ответит поддержка на возможность их использования. После небольшой дискуссии был получен следующий ответ:

Интересная, конечно, позиция. Хорошо, расслабляемся и пользуемся.

Шаг 2.
Собственно каркас

Желаемый каркас всё-таки был написан. В качестве языка программирования был выбран Python.
Состоит он из ядра и подключаемых плагинов. Ядро осуществляет авторизацию, работу с sqlite базой данных, импорт плагинов, опрос longpoll-сервера.
Плагины гибко взаимодействуют с ядром. О структуре плагина:
Чтобы ядро восприняло файл как плагин, в нем должна быть объявлена переменная:

__vkbuddyplugin__ = True

Для того, чтобы добавить параметры в конфиг-файл, плагину необходимо объявить переменную config_parameters:

config_parameters = [
    {'name': 'parameter_name', # имя параметра
     'required': False, # bool, является ли параметр обязательным
     'description': 'parameter_description', # описание параметра
     'default': 'parameter_value', # значение параметра по умолчанию
     'typ': str}, # тип параметра
    ...
]

Чтобы создать таблицы в БД (если они еще не существуют), необходимо объявить переменную sql_tables:

sql_tables = [
    {'name': 'table_name', # имя таблицы
     'structure':( # структура таблицы: пары (имя столбца, тип столбца)
        ('id', int), 
        ('column_name', float)
     )},
    . ..
]

Также реализован набор стандартных хендлеров (добавить новые хендлеры можно и в плагинах, так уже реализован хендлер текстовых команд).

Стандартные хендлеры:

  • before_auth_handlers — функции вызываются перед авторизацией, с единственным параметром — основным объектом, в котором можно получить доступ к VK API, хоть это и бесполезно перед авторизацией
  • after_auth_handlers — функции вызываются после авторизации, с тем же единственным параметром
  • exit_handlers — функции вызываются перед выходом, так же с единственным параметром
  • longpoll_handlers — функции вызываются при получении сообщения от longpoll-сервера, параметров здесь много, что они значат можно посмотреть в документации по VK API: (vkbuddy, code, msgid, flags, from_id, ts, subj, text, attachments)

На github можно ознакомиться с результатом, примерами плагинов и прочим, а также поучаствовать в разработке.

Спасибо за внимание!

Вход в систему Super Auth — SuperAuth

Вход в систему Super Auth — SuperAuth

Нет пароля. Нет регистрации.

Как это работает

SuperAuth — это приложение и безопасный сервер аутентификации. Загрузите приложение, соедините его со своими адресами электронной почты и используйте систему идентификации отпечатков пальцев или PIN-код вашего устройства для безопасного входа в любую службу с поддержкой SuperAuth.

Скачать

Доступно бесплатно в Apple App Store и Google Play Store. Зарегистрируйтесь, указав свой адрес электронной почты и свои данные.

Сканировать QR-код

Когда вы найдете веб-сайт или приложение с кнопкой SuperAuth, коснитесь ее и отсканируйте QR-код, полученный с помощью приложения SuperAuth.

Идентификатор отпечатка пальца

Приложение запросит у вас (вежливо) ваш красивый уникальный отпечаток пальца. Ткните пальцем и наблюдайте, как происходит волшебство! Вы также можете использовать свой пин-код для входа в систему.

Ты в деле!

Приложение покажет вам уникальный идентификационный код, и веб-сайт покажет вам тот же код, чтобы вы знали, что вы в безопасности.

Видео

Самый простой уровень безопасности, с которым вы когда-либо сталкивались

SuperAuth был разработан, чтобы быть простым для пользователей и разработчиков и невозможным для хакеров. Ваши данные сохраняются только на ВАШЕМ устройстве.

Пароли не требуются

Черт возьми, никогда больше не ИСПОЛЬЗУЙТЕ пароль! SuperAuth генерирует новый безопасный пароль для вашего входа в систему.

Нет телефона? Нет проблем

Если у вас нет с собой телефона, мы отправим вам временную ссылку для входа на вашу электронную почту с простым кодом доступа.

Super Secure

SuperAuth создан на основе лучшего в отрасли шифрования. Ваша информация никогда не сохраняется дважды одним и тем же способом.

Пароли не требуются Черт, больше никогда не ИСПОЛЬЗУЙ пароль! SuperAuth генерирует новый безопасный пароль для вашего входа в систему. Нет телефона? Нет проблем Если у вас нет с собой телефона, мы отправим вам временную ссылку для входа на вашу электронную почту с простым кодом доступа. Super Secure SuperAuth создан на основе лучшего в отрасли шифрования. Ваша информация никогда не сохраняется дважды одним и тем же способом. На основе электронной почты SuperAuth регистрирует ваш адрес или адреса электронной почты на нашем сервере, чтобы вы могли легко входить в рабочие и личные системы. Без регистрации Простое использование SuperAuth в системе, которой вы никогда раньше не пользовались, позволит вам зарегистрироваться без заполнения форм! Вход в любом месте SuperAuth не только для Интернета. Используйте его для безопасного и надежного входа в другие приложения, киоски и приложения SmartTV.

Привязан к вашему адресу электронной почты

SuperAuth регистрирует ваш адрес или адреса электронной почты на нашем сервере, чтобы вы могли легко входить в рабочие и личные системы.

Регистрационных форм больше нет

Простое использование SuperAuth в системе, которой вы никогда раньше не пользовались, позволит вам зарегистрироваться без заполнения форм!

Вход в любом месте

SuperAuth не только для Интернета. Используйте его для безопасного и надежного входа в другие приложения, киоски и приложения SmartTV.

логин — SuperAuth

логин — SuperAuth

Нет пароля. Нет регистрации.

Как это работает

SuperAuth — это приложение и безопасный сервер аутентификации. Загрузите приложение, соедините его со своими адресами электронной почты и используйте систему идентификации отпечатков пальцев или PIN-код вашего устройства для безопасного входа в любую службу с поддержкой SuperAuth.

Скачать

Доступно бесплатно в Apple App Store и Google Play Store. Зарегистрируйтесь, указав свой адрес электронной почты и свои данные.

Сканировать QR-код

Когда вы найдете веб-сайт или приложение с кнопкой SuperAuth, коснитесь ее и отсканируйте QR-код, полученный с помощью приложения SuperAuth.

Идентификатор отпечатка пальца

Приложение запросит у вас (вежливо) ваш красивый уникальный отпечаток пальца. Ткните пальцем и наблюдайте, как происходит волшебство! Вы также можете использовать свой пин-код для входа в систему.

Ты в деле!

Приложение покажет вам уникальный идентификационный код, и веб-сайт покажет вам тот же код, чтобы вы знали, что вы в безопасности.

Видео

Самый простой уровень безопасности, с которым вы когда-либо сталкивались

SuperAuth был разработан, чтобы быть простым для пользователей и разработчиков и невозможным для хакеров. Ваши данные сохраняются только на ВАШЕМ устройстве.

Пароли не требуются

Черт возьми, никогда больше не ИСПОЛЬЗУЙТЕ пароль! SuperAuth генерирует новый безопасный пароль для вашего входа в систему.

Нет телефона? Нет проблем

Если у вас нет с собой телефона, мы отправим вам временную ссылку для входа на вашу электронную почту с простым кодом доступа.

Super Secure

SuperAuth создан на основе лучшего в отрасли шифрования. Ваша информация никогда не сохраняется дважды одним и тем же способом.

Пароли не требуются Черт возьми, никогда больше никогда не ИСПОЛЬЗУЙТЕ пароль! SuperAuth генерирует новый безопасный пароль для вашего входа в систему. Нет телефона? Нет проблем Если у вас нет с собой телефона, мы отправим вам временную ссылку для входа на вашу электронную почту с простым кодом доступа. Super Secure SuperAuth создан на основе лучшего в отрасли шифрования. Ваша информация никогда не сохраняется дважды одним и тем же способом. На основе электронной почты SuperAuth регистрирует ваш адрес или адреса электронной почты на нашем сервере, чтобы вы могли легко входить в рабочие и личные системы. Без регистрации Простое использование SuperAuth в системе, которой вы никогда раньше не пользовались, позволит вам зарегистрироваться без заполнения форм! Вход в любом месте SuperAuth не только для Интернета.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Закрыть
Menu