Проверка подлинности фронтэнда

Обсуждение и помощь по вопросам взаимодействия с ВКонтакте API в IFrame-приложениях (JavaScript, PHP и т.д)
Ответить
xdev
Сообщения: 6
Зарегистрирован: 06 июл 2012, 11:18

Проверка подлинности фронтэнда

Сообщение xdev »

привет, собственно, пытаюсь решить следующую проблему:
на стороне бэкенда (на сервере), необходимо проверять от кого получаю запрос - от моего оригинального фронта (игрушка на Flash) или запросы на мой сервер присылает какой-то бот, эмулирующий запросы моего приложения.
Проблема заключается в том, что те данные, которые получает запущенная в iframe-е Флэшка (например sid), я не могу использовать в вызове vk api для какой-либо проверки, так как они просто не участвуют в передаваемых переменных на сервер api вконтакте, а все прочие параметры (например, uid пользователя), может передавать и бот...
Собственно, подскажите, каким способом именно с использованием vk api я могу проверить был ли сделан данной запрос из окружения вконтакте или откуда-нибудь ещё...
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: Проверка подлинности фронтэнда

Сообщение Александр »

Бот сможет передавать и все другие параметры...
Есть viewer_id + auth_key.

sig и sid участвуют при обращении к ВКонтакте API.
Можно не использовать метод VK.api, а делать прямое обращение через http.
http://vk.com/developers.php?oid=-1&p=% ... %D1%81_API
xdev
Сообщения: 6
Зарегистрирован: 06 июл 2012, 11:18

Re: Проверка подлинности фронтэнда

Сообщение xdev »

Спасибо за ответ, однако, не могли бы подсказать, каким образом можно использовать viewer_id и auth_key в данном случае?
Точнее сказать, было бы достаточно просто отбрасывать те запросы, которые были инициированы не запущенным приложения из-под окружения вконтакте (пусть даже и от бота).
Сейчас я просто проверяю, существует ли в действительности ИД переданного пользователя (метод isAppUser из vk api) и установлено ли у него данное приложение, и если да, то продолжаю взаимодействовать, однако, в этом случае, можно будет запускать ботов откуда угодно. В идеале, было бы замечательно, если бы клиентское приложение передавало мне некий хэш сгенерённый самим вконтакте, и я бы мог его проверить (что такой хэш действительно создавался для данного приложения) при подключении уже со своего серверного бэкенда.
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: Проверка подлинности фронтэнда

Сообщение Александр »

Код: Выделить всё

$auth_key  = $_GET['auth_key'];$viewer_id = $_GET['viewer_id']; $real_key = md5($app_id."_".$viewer_id."_".$api_secret);if ($auth_key == $real_key){ }
xdev
Сообщения: 6
Зарегистрирован: 06 июл 2012, 11:18

Re: Проверка подлинности фронтэнда

Сообщение xdev »

Здравствуйте, Александр, благодарю за ответ, но к сожалению, предлагаемый Вами способ не подходит - если вычислять md5-хэш используя данные значения, auth_key и вычисленное значение получаются разные. Возможно, проблема заключается в версии VK-API, которая используется мною (3.0), либо что-то ещё... в общем, пока данный вопрос для меня остаётся актуальным.
xdev
Сообщения: 6
Зарегистрирован: 06 июл 2012, 11:18

Re: Проверка подлинности фронтэнда

Сообщение xdev »

благодарю, вопрос более не актуален. кстати, возможно кому-то будет полезно: замечу, что данный способ будет работать только тогда, когда для приложения включены платежи.
Александр, благодарю.
Аватара пользователя
gaponj88
Сообщения: 433
Зарегистрирован: 21 окт 2011, 12:26

Re: Проверка подлинности фронтэнда

Сообщение gaponj88 »

xdev
Все работает и без платежей
Ответить