Написание JApplet безопасно? - PullRequest
       19

Написание JApplet безопасно?

0 голосов
/ 27 августа 2011

Итак, я создаю игру JApplet и сохраняю информацию о пользователях в файл .txt в APPDATA.Есть ли более безопасный способ сохранить информацию, которая не позволит им редактировать ее, чтобы обмануть?

1 Ответ

2 голосов
/ 25 января 2013

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

Говоря об этом, я бы советовал не "сохранять информацию пользователя".в файл .txt ".%APPDATA% только для Windows, таким образом, отключается «писать один раз в любом месте»;а песочница апплета по умолчанию не позволяет читать или записывать локальные файлы, поэтому вам придется подписать апплет и убедить своих пользователей, что он достаточно особенный, чтобы заслужить такие повышенные привилегии.

Однако у вас естьнесколько вариантов взаимодействия между апплетом и сервером:

  • вызовы REST с использованием java.net.URL
  • вызовов SOAP (для этого есть несколько библиотек)
  • RMI (только еслисервер написан на Java)
  • Ваш собственный настраиваемый протокол по TCP

Апплеты не могут напрямую читать и писать куки, но JavaScript может, а JavaScript может вызывать методы в апплетах.Последний способ передачи информации с сервера в апплет (но не обратно) - через теги PARAM.Вы даже можете передать начальные данные о состоянии игры, подписанные закрытым ключом сервера и base64, закодированным в теге PARAM;что помешало бы кому-либо «редактировать» его, хотя я не могу придумать никакого способа полностью предотвратить мошенничество, если предполагается, что что-то о состоянии игры скрыто от игрока, но известно в коде апплета.

...