Защита исходников игры HTML5 - PullRequest
11 голосов
/ 08 марта 2012

Люди говорили так много хороших слов для HTML5, но одна из моих главных забот - как защитить исходный код моей игры.

по существу ..

  1. Какзапретить другим использовать наш собственный игровой движок (это огромный ресурс)
  2. Как запретить другим скачивать игру и размещать ее на другой платформе
  3. Как скрыть детализацию вызовов API серверав источниках, например, наш собственный API табло, API виртуальной валюты и т. д.

Ответы [ 8 ]

11 голосов
/ 08 марта 2012

«Ты не можешь» - это ответ на все 3 вопроса. Единственное, что вы можете сделать, - это замедлить любого, кто заинтересован в вашем коде, используя его, но в конечном итоге, если кто-то захочет использовать ваш код, вы ничего не можете с этим поделать.

7 голосов
/ 27 ноября 2012

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

Я использую jscrambler.com с хорошими результатами. Тем не менее, запутывание не решит все проблемы. Пользователи по-прежнему смогут просматривать весь трафик, которым обмениваются браузер и сервер. Поэтому они будут знать, как работает API и как его использовать.

Чтобы избежать этого, вы можете использовать шифрование сообщений с использованием javascript. Это может быть полезно при защите контента. Я нашел сообщение о стеке потока, в котором обсуждается шифрование с использованием javascript: Javascript AES encryption . Существует несколько реализаций, которые могут повлиять на производительность.

И последнее, но не менее важное: все входные данные должны быть тщательно проверены на стороне сервера. Вся логика, которая может быть реализована на стороне сервера, должна оставаться там.

7 голосов
/ 09 марта 2012

я лично использую Google Closure Compiler с расширенным сжатием до обфусцировать мой код (скачайте Java-файл, не используйте онлайн-версию!).Для подготовки кода требуются дополнительные усилия, но все это очень хорошо документировано, и как только вы поймете, как работает компилятор, действительно легко соблюдать его правила.Он не только запутывает ваш код, но и фактически оптимизирует его для скорости выполнения и размера файла.

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

Для вызовов API все иначе.шифрование не будет работать, так как код дешифрования будет виден внутри javascript - даже при запутывании эту часть будет трудно скрыть, так как код AJAX всегда выглядит немного похожим ... Также шифрование использует процессорное время, которое вам, вероятно, понадобится в другом месте.Отсрочка - один из способов, но в конце API-вызовы будут более или менее читабельными.

4 голосов
/ 08 марта 2012

Вы можете запустить свою игру на ПК с сенсорным экраном в защищенном аппаратном шкафу (как в аэропорту) и не делать ее доступной через Интернет.Возможно, не идеальный ответ, который вы искали.

2 голосов
/ 08 марта 2012

В конечном счете, в Интернете нет защиты активов. Если вы видите это в браузере, вы можете скачать его с помощью curl. Если для вас важна защита активов, я не рекомендую HTML и JavaScript.

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

0 голосов
/ 09 февраля 2019

В 2019 году задавал себе тот же вопрос, что и разработка на Babylon .... до сегодняшнего дня не существует пуленепробиваемого метода для этого, НО вы МОЖЕТЕ минимизировать риск, заставляя посетителей регистрироваться в качестве пользователей, и защищать вашу игрукод доступа на уровне входа в систему.

0 голосов
/ 08 марта 2012

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

0 голосов
/ 08 марта 2012

Сокращение вашего js-кода значительно усложнит его повторное использование, но не сделает невозможным

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...