Некоторое время назад я добавил таблицу быстрых / грязных рекордов в свой проект, и совсем не разбираясь в интернет-безопасности и т. Д., Это оказалось своего рода недостатком. Удивительно, но с почти 1 200 000 записанных результатов у меня было всего лишь 5 или 6 случаев, когда партии явно неверных результатов достигли вершины доски. Большинство результатов даже больше напоминало сбой в игре, чем настоящий «взлом».
Поэтому я думаю, что важный момент: убедитесь, что система подсчета очков в вашей игре герметична , или, по крайней мере, проведите действительно хорошую проверку выполнимости результатов; Теперь, эта игра, о которой я говорю, была Ludum Dare 48hr, так что это не самая стабильная вещь вокруг ... но в целом я думаю, что чаще всего случайный игрок обнаружит / использует игровой глюк, чем иметь кого-то непосредственно "взломать" таблицу лидеров.
Тем не менее, я работаю над переписыванием этого проекта прямо сейчас, и я прилагаю все усилия с запутывания. Я не буду вдаваться в подробности, но в основном все оценки представляют ключевое значение на основе набора случайных значений и хэширования и магической строки, а затем любой результат, который проходит эту проверку и является достаточно высоким, чтобы сделать факт " Таблица лидеров Top X должна пройти еще один этап проверки (на этот раз со значением ключа с истекающим сроком действия, созданным на стороне сервера, и более тщательными проверками осуществимости).
Я бы также посоветовал использовать какой-либо трассировщик пакетов для проверки того, какие вещи видны (изначально я проводил гораздо более простую проверку, которая означала, что кто-то может использовать трассировщик пакетов для поиска и дублирования http-запроса загруженной оценки, не зная, магическая строка или что-то в этом роде (означало, что сначала вам нужен был законный счет, но вы можете отправлять дубликаты этого счета столько, сколько захотите ...)) Я использовал Wireshark для тестирования этого.
Да, это оказалось немного долго, но, надеюсь, это поможет ...