Информация

Обсуждало 4 человека

Защита запросов приложения вконтакте

Логика и программирование
19 июня 2013 в 19:37:45

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

Обсуждение (вниз)

Не хватает только вашего мнения. Зарегистрируйтесь, чтобы написать!

25 июня 2013 в 19:02:02

Да, спасибо!!! До меня дошло, что только себе можно накупить))) А жанр игры, как бы все в куче)))

25 июня 2013 в 13:47:54

бляя,
Glega, sw_alex прав злоумышленник ...

25 июня 2013 в 13:09:18

Glega, sw_alex злоумышленник ток себе сможет что то накрутить. А какой жанр игры ты делаешь, что на серваке все просчитать нельзя?

25 июня 2013 в 08:25:50

Glega, в приложении будет видно и auth_key, и любое число которое ты передашь. Ты можешь конечно сделать запутанную систему проверки, это отсеет некоторое количество ленивых школьников, но приложение всё равно останется уязвимым. В хэш md5 засовывай все переменные, которые передаются с запросом. Так ты убережешь их от подделки. Хэш, сделанный из auth_key+рандомное число, но не включающий передаваемые переменные, не защитит ровным счётом ничего. Изменение любой переменной запроса должно вызывать несоответствие в хэше.
злоумышленники смогут допустим какому-нибудь игроку накупить всякого хлама
- а вот от этого auth_key прекрасно защищает. Если ты конечно всё делаешь правильно, и каждый раз при проверке хэша собираешь его на сервере. Т.к. auth_key состоит из секретного ключа, id игрока и id приложения, злоумышленнику надо узнать все 3 эти переменные, чтобы подделать запрос для другого юзера. Оба id узнать несложно, а вот секретный ключ должен знать только ВК и твой сервер. Никогда не пиши его в приложении. Нигде.

24 июня 2013 в 17:20:20

Сильно не ругайте, потому как только начинаю работать с защитой запросов, да и вообще с самими запросами))) Исходя из комментариев, если я правильно понял, сделал так, передаю с запросом md5(auth_key + рандомное число), и само число. На сервере проверяю сходятся ли ключи. Поискал auth_key в коде страницы приложения, не нашел. Обрадовался, но потом, в хромовской панельке, где все ресурсы, обнаружил все переменные, которые контакт передает приложению, там и acces_token и secret, и т.д. Конечно, такая защита отсеет тех кто не умеет пользоваться декомпилом. Обфускация еще прибавит к ним большинство, но после обфускации приложение не хочет работать, поздно задумался о безопасности. Переделывать желания никакого нет... Конечно, основные действия проходят на сервере, но все равно злоумышленники смогут допустим какому-нибудь игроку накупить всякого хлама, или еще как-то навредить. У людей этого не отнять. Может быть я и неправильно понял советы, которые написали. У меня есть еще идея, при авторизации, сервер записывает вконтакт переменную для пользователя какой-нибудь ключ, и потом приложение считает этот ключ, и уже будет производится проверка запроса.

20 июня 2013 в 11:13:40

iDenChig, фигня в том что онлайн-декомпилом умеют пользоваться относительно немного людей. И их легко отловить по факту. Школолольники юзают артмани, и если защиту не ставить, получаешь гору подправленных запросов. А от декомпила флэху не защитить, факт. Остаётся ловить нарушителей по факту.

20 июня 2013 в 11:07:21

Ыыы защита от артмании )) Рандомную соль прибавляешь при set и отнимаешь при get. Мел просто на твоих приложениях не учили безопасников, а так с онлайн декомпилом, вообще защиту на клиенте любой сложности в гавно ))

20 июня 2013 в 08:42:28

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

20 июня 2013 в 08:39:36

Я защищаю через хэш md5, рандомное (или почти рандомное) число и статистику на сервере. И ещё для критически важных переменных (очки, деньги и т.д.) стоит защита от артмани. Реализована просто - кроме основной переменной (очки), есть дополнительная, напрмер очки+1000. Основная передаётся в запросе на сервер, дополнительная используется для формирования хэша. Если они не будут равны, хэш выйдет неверным, и сервер не примет такой запрос. В основном это помогает, но изредка защиту пробивают. Это единичные случаи, бороться бесполезно, я таких просто баню. Можно ещё отлавливать на сервере заведомо нереальные запросы. Например, мильён очков за 10 секунд и т.п.

20 июня 2013 в 00:11:29

Я по другому немного шифровал, значит на серве был скрипт который парсил данные и сами данные посылались так. Например вначале посылаем 153 очка на сервер. 153 - 3 символа, генерим 3 произвольных числа от 3 до 5 символов например 1111 222 55555, считаем сколько в кадждом числе символов и записываем их т.е 435, но перед этим записываем сколько символов в числе должно быть и получаем число 3435, затем пишем первое число и первую цифру от очков получаем, 343511111, затем пишем второе число и вторую цифру от очков и так до третьей и в итоге получаем 3435111112225555553 + рандомное число, и в итоге будет 34351111122255555532398, и хер ваще че поймешь и не подделаешь, ну а на серве скрипт просто парсит данные и проверяет на ошибки.

19 июня 2013 в 21:11:14

Спасибо)))

19 июня 2013 в 20:49:36

Просто взламывают обычно школьники, а если создать сложную подпись у них мозг разнесет нахрен от сложности, не один питух школьный не сможет даже на 1% взломать

19 июня 2013 в 20:48:51

Мою защиту еще некто не проломил, только art money было пару раз но я и от этого защиту сделал

19 июня 2013 в 20:14:17

Хотя в принципе для игр которые только счет будут сохранять можно воспользоваться так как ни кому ломать не интерестно будет, а с другой стороны если брать FunnyGame То там такая же защита и что?)) все у чертям переламали ))

19 июня 2013 в 19:56:37

Maldan мел не поможет, так как уже декомпрессоры в онлайн работают

19 июня 2013 в 19:43:59

Чтобы обрабатывалось только от твоего приложения еще добавь токен от самого вк, в общем в подпись впихай как можно больше данных, так будет нереально ломануть

19 июня 2013 в 19:42:12

Создай подпись, md5(очки + опыт + рандомное число) и отправляй на сервер, а на сервере проверяй хэши, так будет невозможно подделать запрос

19 июня 2013 в 19:41:50

Ну как бы это не возможно так сделать, обрабатывай все на сервере или сделай какуюнить защиту предсказаний. А вообще что отрыто и как бы ты это не зашифровывал можно всегда подделать. Самый верный способ, критические операции рассчитывать на сервере.
Fundux.ru v.3.0 © 2006-2021 AleXNoD
Портал русских флеш игр и flash мультов