Защита источников игры HTML5

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

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

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

Ответ 1

"Вы не можете" - это ответ на все 3 вопроса. Единственное, что вы можете сделать, это замедлить тех, кто заинтересован в вашем коде, вызывая его, но в конечном счете, если кто-то хочет использовать ваш код, вы ничего не можете с этим поделать.

Ответ 2

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

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

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

Ответ 3

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

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

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

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

Ответ 4

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

Ответ 5

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

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

Ответ 6

Минимизация кода js сделает его намного сложнее повторного использования, но не невозможно

Ответ 7

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

Лучше не сосредотачиваться на этом слишком много. Фокус на ваших клиентах.