Перейти к содержимому

Oauth vk com что это

  • автор:

Вход на сайт через Вконтакте

Многие соцсети позволяют создавать приложения и через API получать данные пользователей, поэтому их использует для быстрой регистрации и авторизации на сайтах. Как проходит аутентификация, рассмотрим на примере VK:

  1. На сайте, пользователь нажимает на ссылку «Войти», открывается страница VK, где он разрешит приложению доступ к своим данным.
  2. После подтверждения браузер пользователя будет перенаправлен по адресу, указанному при открытии диалога авторизации. К URL добавляется GET-параметр с кодом авторизации.
  3. Скрипт выполняет ответный запрос с полученным кодом и ключом приложения для получения access_token .
  4. Полученный в ответе access_token , скрипт использует для запроса к данным пользователя.

Регистрация приложения

Для начала нужно создать приложение на странице https://vk.com/editapp?act=create

В меню «Платформа» нужно указать – сайт, заполнить поля «адрес сайта» и «основной домен».

Создание приложения ВК

В настройках видим ID приложения и защищённый ключ, также нужно убедится что приложение включено и видно всем.

Настройки приложения ВК

Ссылка для входа

Сформируем и выведем ссылку по которой пользователь даст разрешение на запрошенные действия.

В redirect_uri указываем скрипт-обработчик, туда придет секретный код. В параметре state можно передать URL текущей страницы, чтобы вернуть пользователя обратно. При переходе по ссылке откроется страница:

Приложение запрашивает доступ к аккаунту

Получение данных

После того как пользователь дал разрешение, он возвращается на redirect_uri , к URL добавляются GET-параметры:
https://example.com/oauth-vk.php?code=1234567890&state=https://example.com/page-1 Далее запрашивается access_token (в ответе с токеном будет e-mail). После этого выполняется метод users.get , который возвращает ID, имя, фамилию и URL аватарки.

redirect_uri должен быть такой же как в ссылке для входа.

 'ID приложения', 'client_secret' => 'Защищённый ключ', 'redirect_uri' => 'https://example.com/oauth-vk.php', 'code' => $_GET['code'] ); // Получение access_token $data = file_get_contents('https://oauth.vk.com/access_token?' . urldecode(http_build_query($params))); $data = json_decode($data, true); if (!empty($data['access_token'])) < // Получили email $email = $data['email']; // Получим данные пользователя $params = array( 'v' =>'5.81', 'uids' => $data['user_id'], 'access_token' => $data['access_token'], 'fields' => 'photo_big', ); $info = file_get_contents('https://api.vk.com/method/users.get?' . urldecode(http_build_query($params))); $info = json_decode($info, true); echo $email; print_r($info); > >
Полученные данные пользователя
xxxx@xx.ru array( "response" => array( 0 => array( "id" => 12345678, "first_name" => "Иван", "last_name" => "Иванов", "photo_big" => "https://vk.com/images/camera_200.png?ava=1" ) ) )

Далее все завит от реализации сайта, пользователя можно добавить в БД или обновить его данные и авторизовать в системе.

OAuth Vk.com: что это такое, как убрать

Новый протокол OAuth Vk.com существует всего несколько лет, но за это время успел получить широкую огласку и популярность. Этот способ обмена данными между серверами стал очень удобным и безопасным.

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

В запросе нужно указать данные пользователя. Далее с помощью ресурса сервер распознаёт клиента, отдаёт ему право авторизации. Затем человек перенаправляется на сервер. На сервере нужно авторизоваться, после чего подтвердить свои параметры.

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

Сервисом вконтакте пользуются более 30 млн. посетителей. OAuth Vk.com заметно упрощает регистрацию людей на сайте. Посредством данного ресурса можно зарегистрироваться в соц. сети без особых проблем. Для начала нужно указать все данные и номер телефона.

От сервиса никакой рассылки идти не будет. Это значительно упрощает условия получения доступа к социальной сети Вконтакте. После этого человеку нужно будет создать приложение. Как только приходит смс-подтверждение о создании, пользователь попадает на страничку редактирования.

Туда добавляется вся необходимая информация о новом участнике. При помощи такой услуги можно создать приложение сразу для нескольких сайтов. Многие люди для полноценной регистрации используют OAuth Vk.com.

Это весьма удобно. Но если нет необходимости использовать этот контент, то его можно просто исключить из списка доменов. В этом нет ничего сложного, просто дело в том, что многие пользователи Вконтакте для регистрации пользуются именно OAuth Vk.com.

Авторизуясь через этот контент, можно сразу же перейти на главную страницу сайта. Многие люди используют контент для того, чтобы регистрировать нового пользователя со старыми данными.

Подводя итоги, можно сказать о том, что OAuth является протоколом авторизации, который даёт разрешение одному приложению получить доступ к ресурсам пользователя в другом приложении. Например, теперь для входа в соцсеть не нужно использовать логин и пароль. И ещё: для входа в майл.ру посредством приложения Вконтакте или Одноклассники может быть произведено через вышеуказанный протокол.

OAuth ВКонтакте: использования в корыстных целях

Существует множество способов распространения вредоносного спама во ВКонтакте. Но вредители не дремлют, в их головы приходят все больше интересных идей. И поддержка OAuth 2.0 платформой ВКонтакте оказалась как никак кстати. Мошенники научились пользоваться им для обхода страницы предупреждения о вредоносных сайтах.

А все началось с того, что однажды на моей стене появилось такое сообщение:

Из любопытства перешел по ссылке и попал на очередной фишинговый сайт. Но мне показалась странной сама ссылка, она имела вид (половина символов в ASCII):
vkontakte.ru/away.php?to=http%3A%2F%2FApi.vKontakte.Ru%2F%2Fo%2561u%2574%…

  • vkontakte.ru/away.php — страница с предупреждением о переходе по ссылке;
  • Параметр to сама ссылка. В перекодированном виде выглядела так:
    Api.vKontakte.Ru/oauth/authorize?client_id=2376***&cgpopcvkqdjut4&redirect_uri=vgostivk.dyndns**&display=popup?390852
Тут-то самое интересное и начинается.
  • Api.vKontakte.Ru/oauth/authorize — обращение к API ВКонтакте, авторизация через OAuth 2.0;
  • client_id=2376***&cgpopcvkqdjut4&redirect_uri=vgostivk.dyndns**&display=popup?390852 — параметры авторизации.
  • client_id — ID приложения, требующего авторизацию;
  • redirect_uri — адрес, на который будет передан access_token (посредством редиректа);
  • display — вид окна авторизации (page, popup, touch и wap).

В этом и заключается весь смысл обхода блек-листа вредоносных сайтов ВКонтакте. Появляется только алерт о переходе на api.vk.com. И в результате перехода мы прямиком попадаем на фишинг сайт, который имеется в черном списке. При переходе по ссылке vkontakte.ru/away.php?to=vgostivk.dyndns**:

Как оказалось, приложение, якобы требующее авторизацию висело на взломанном пользователе:

image

Да и сам фишинг сайт был устроен довольно интересно. Дизайн по обычаю был контактовский и предлагал авторизоваться. Я прошел авторизацию через рандомные почту и пароль, фейк прекрасно проглотил. Дальше было еще интересней, на главной появилась новость от «Павла Дурова»:

image

После нажатия на кнопку «Создать персональный счетчик», последовал прекрасный прогресс-бар. Затем было предложено указать свой номер и отправить sms:

По идее после успешной «активации» должно было перекинуть на страницу activ.php, но я не смог попасть туда. Выдержки из JS скриптов фишинг сайта:

.
if (req.status == 200) <
// если статус 200 (ОК) — выдать ответ пользователю
if (req.responseText == ‘ok’ ) //statusElem.innerHTML = ‘Все гуд!’;
get_activation();
>
if (req.responseText == ‘not’ )
//statusElem.innerHTML = «Ответ сервера: «+req.responseText;
.
function get_activation() document .location= «activ.php» ;
>

* This source code was highlighted with Source Code Highlighter .

Итог: Мошенники используют обход предупреждений через OAuth 2.0, получают пароль и email пользователя, да еще и пытаются развести на отправку sms (скорее всего используя систему подписок).

Oauth vk com что это

kingSizeShoe никому не известный тип

Регистрация: 11.04.2013

Сообщений: 1

Популярность: 10

Сказал(а) спасибо: 0

Поблагодарили 0 раз(а) в 0 сообщениях
Логинимся VK по OAuth 2.0 и работаем с API

Так как последняя статья, которая на этом форуме была написана в 2к11 году, уже давным давно не актуальна, следует снова поднять эту тему и объяснить что к чему.
Если вы хотите просто посмотреть пример, в конце статьи ссылка на скачивание.
Будет много букв, так что если вы решили это дочитать, то возьмите чаек и вкусняшки.
На данный момент VK API предоставляет большие возможности в плане создания различных Standalone приложений.

Standalone в понимании контакта — то приложение, которое может получить из адресной строки браузера текст (а точнее — token). Ибо токен с расширенными правами можно получить только с сервера вконтакта (на него идёт редирект. Никаким js`ом его не вытащить, не имея доступа к браузеру )

ЧАСТЬ 1. РЕГИСТРАЦИЯ STANDALONE ПРИЛОЖЕНИЯ
Для начала мы должны зарегистрировать приложение. Заходим на сайт [ Ссылки могут видеть только зарегистрированные пользователи. ], авторизируемся, и переходим на вкладку:»Мои приложения».
[ Ссылки могут видеть только зарегистрированные пользователи. ]
Нажимаем:»Создать приложение», выбираем Standalone-приложение.
[ Ссылки могут видеть только зарегистрированные пользователи. ]
Название не играет роли.
Привязываем его к вашему устройству и вот, у вас есть собственное, никому не нужное приложение.
Опять переходим в:»Мои приложения». И нажимаем на кнопку:»Редактировать». Переходим в левом меню к настройкам.
[ Ссылки могут видеть только зарегистрированные пользователи. ]
Для нас, на данный момент основными являются id приложения и его защищенный ключ . Не закрываем эту страницу и переходим к теории.
ЧАСТЬ 2. OpenID, OAuth, Token, UserID.
Представь себе стандартную ситуацию. Заходишь на сайт, смотришь новости в интернете, следишь за долларом и нефтью, и очень хочешь оставить комментарий на каком нибудь сайте и тебе приходиться ввести «Имя», «Фамилию», «Логин», «Email», «Email еще раз», «Пароль», «Снова Пароль», «Прочитать правила и согласиться со всем что тут будет происходить» и «Капчу».
Но ведь люди не дураки, и придумали Open ID.

OpenID — открытый стандарт децентрализованной системы аутентификации , предоставляющей пользователю возможность создать единую учётную запись для аутентификации на множестве не связанных друг с другом интернет-ресурсов, используя услуги третьих лиц.©Wikipedia

Если чуть-чуть проще, то для всех сайтов мы будем использовать один аккаунт. Вроде бы да, удобно, не нужно тысячу этих вводов Email и прочего, но с другой стороны если вдруг нас взломают, то скорее всего получат не только спам от ламоды. Такую систему ранее использовал Yandex.

OAuth — открытый протокол авторизации , который позволяет предоставить третьей стороне ограниченный доступ к защищённым ресурсам пользователя без необходимости передавать ей (третьей стороне) логин и пароль. ©Wikipedia

Если это же рассказать своим языком, то мы можем отдавать свой аккаунт на пользование сторонним сайтам, но с ограниченными правами. Так как в данной статье будет использоваться именно он, поговорим о нем побольше.
Работает oAuth, если не вдаваться в подробности ,по такой схеме:

  1. Получение авторизации
  2. обращение к защищенным ресурсам

Результатом авторизации будет access token — ключ, который дает нам право пользоваться защищенными ресурсами.
VK поддерживает 3 способа передачи данного ключа:

  1. Implicit flow — самый простой и быстрый способ.
  2. Authorization code flow — Двухэтапная авторизация, которая возвращает ключ прямо на сервер, откуда и была запрошена.
  3. Client credentials flow — это механизм прямой авторизации сервера приложения без участия пользователя.

В данной статье мы рассмотрим несколько способов авторизации.
Так же мы будем пользоваться библиотекой vknet , которая предоставит нам упрощенные методы авторизации и работы с API.
ЧАСТЬ 3. НАЧИНАЕМ ПИСАТЬ КОД
Решим последовательность действий для нашей программы.

  1. На форме_1 расположить кнопку, которая будет загружать вторую форму. Это будет удобно ибо будет открываться WebBrowser, авторизация будет проходить в нем, мы получим token и свой id, после чего WebBrowser закроется и откроется основное меню программы.
  2. Так как будет 2 формы, и с небольшим закосом на будущее, token и id будем сохранять в txt файле, рядом с программой.(Можно так же сделать записи в реестр, но мне больше нравиться такой способ)
  3. Получать token и id мы будем из ссылки, значит, её нужно будет распарсить.
  4. Получим имя и фамилию, которые записаны у нас вк и вывести её в label. Отправим сами себе сообщение, ведь мы программисты-одиночки

Создаем новый проeкт Windows Form и подключаем библиотеки.
VKNET подключаем через NuGet:

Создаем вторую форму и связываем с первой.
[ Ссылки могут видеть только зарегистрированные пользователи. ]
Так у нас выглядит первая форма. Создаем вторую и кидаем на неё WebBrowser. Пока с дизайном все, теперь сам код:
Подключаем директивы. В первой форме используемые мной это:

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using VkNet;
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms;

Запишем в первую форму основные переменные.

private static long UserId; private static string Token = null;

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

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