Предотвратить подделку API или "взлом"

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

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

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

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

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

3 ответа

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

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

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

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

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

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

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

Другие вопросы по тегам