предотвратить API "спуфинг" или "взлом" - PullRequest
4 голосов
/ 25 октября 2011

Я создал это веб-приложение и создал этот API. Ради этого примера давайте сделаем это просто:

Мое приложение должно знать, сколько «кредитов» у пользователя. API имеет вызов get_credits, который возвращает {credits: 1000}

Теперь, как мне запретить кому-либо использовать файл хоста (или какой-либо другой метод) для создания своего собственного API, который возвращает {credits: 2000}.

Я думал о вставке какого-то хэша, но, поскольку это javascript, хеш легко извлекается из источника. То же самое касается рукопожатия, я думаю.

Итак, как мне сделать API-интерфейс достаточно безопасным?

Ответы [ 3 ]

2 голосов
/ 25 октября 2011

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

Поэтому я рекомендую хранить все покупки и т. Д. На сервере.Поскольку я не очень разбираюсь в вашей системе, я не могу вам чем-то помочь.

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

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

Надеюсь, вы понимаете мой и мой ответмогу вам помочь; -)

0 голосов
/ 25 октября 2011

Теперь я расскажу вам, как работает моя система. чтобы получить кредиты во время игры, я делаю ajax-запрос для их загрузки. Запрос ajax вызывает простую php-страницу, где есть «echo $ credits;». Так что взломать невозможно. если кто-то изменяет клиентские кредиты, когда они запрашивают подарок, я проверяю с помощью php серверные кредиты, чтобы убедиться, что они легитимны: P - Пожалуйста, проверьте, уязвима ли ваша система к атакам MySQL инъекций, чтобы предотвратить взломать вам систему кредитов: D

0 голосов
/ 25 октября 2011

Если это на стороне клиента, вы мало что можете сделать - приложите максимум усилий.НО вы должны удостовериться, что в ответном сообщении вы подтвердите ответ.Никогда не доверяйте пользователям: -)

...