Вы, кажется, уже знаете это, но только для того, чтобы подчеркнуть; вы не можете остановить кого-то, делающего это;Вы можете сделать это только настолько сильно, насколько это возможно!
Предположим, что вы в настоящее время отправляете счет как:
/submit_score.php?score=5
Кто-то, смотрящий в Firebug, может легко определить, куда отправляется счет, иизменить это.submit_score.php
выдает его, как и имя параметра.Счет представляет собой легко различимое целое число.
- Изменить конечную точку:
/interaction.php?score=5
- Изменить имя параметра:
/interaction.php?a=5
Получаетсяпользователю сложнее понять, что происходит.
Теперь вы можете сделать счет сложнее (опять же, сложнее, не невозможно) измениться.Во-первых, вы можете зашифровать его (очевидно, вам понадобится расшифровать его позже).
- Base 64 закодировать его.
- Числа -> Буквы (1 = a,2 = b и т. Д.).
- Обратный порядок представления партитуры.
Вы называете это, вы делаете это.Итак, теперь у вас есть interaction.php?a=e
.
Следующее, что вы можете сделать, - это хешировать счет чем-то другим.Отправьте хэш с оценкой и пересчитайте его на сервере.Например, md5()
оценка со случайной строкой и отправка счета (в кодировке), строки и хэша в запросе:
/interaction.php?a=e&str=abcde&hash=123456789abcefbc
Когда запрос попадает на сервер, выполните:
if (md5($_GET['a'] . $_GET['str']) !== $_GET['hash']) exit;
Очевидно, что люди могут (относительно) легко просмотреть ваш код JavaScript и посмотреть, что происходит;так им там труднее.Сократите и запутайте код.
Если вы сделаете это кому-то достаточно сложно, они попытаются понять ваш JavaScript, попробовать использовать Firebug, не понять, что происходит, и не беспокоиться;ради получения нескольких дополнительных очков в вашей игре.