Защита источников игры 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
Нет никаких способов копирования цифровых файлов. Многие отрасли промышленности пытались. Многие потерпели неудачу. К сожалению, многие будут продолжать пытаться и продолжать терпеть неудачу, но бизнес, похоже, испытывает трудности с изучением своих прошлых ошибок в разы.
Лучше не сосредотачиваться на этом слишком много. Фокус на ваших клиентах.