По сути, единственный способ предотвратить мошенничество - это заставить сервер под вашим контролем вычислять счет и иным образом применять правила игры.Если вы писали одноранговую игру, возможно, существует некоторый протокол, позволяющий пользователям определять, обманывал ли другой игрок без вашего участия. ACM sigecom регулярно публикует исследования о таких протоколах.Однако из-за ограничений модели безопасности апплета пользователи должны будут предоставить вашему апплету специальное разрешение, чтобы он в любом случае мог напрямую общаться с другими пользователями.
Говоря об этом, я бы советовал не "сохранять информацию пользователя".в файл .txt ".%APPDATA%
только для Windows, таким образом, отключается «писать один раз в любом месте»;а песочница апплета по умолчанию не позволяет читать или записывать локальные файлы, поэтому вам придется подписать апплет и убедить своих пользователей, что он достаточно особенный, чтобы заслужить такие повышенные привилегии.
Однако у вас естьнесколько вариантов взаимодействия между апплетом и сервером:
- вызовы REST с использованием
java.net.URL
- вызовов SOAP (для этого есть несколько библиотек)
- RMI (только еслисервер написан на Java)
- Ваш собственный настраиваемый протокол по TCP
Апплеты не могут напрямую читать и писать куки, но JavaScript может, а JavaScript может вызывать методы в апплетах.Последний способ передачи информации с сервера в апплет (но не обратно) - через теги PARAM.Вы даже можете передать начальные данные о состоянии игры, подписанные закрытым ключом сервера и base64, закодированным в теге PARAM;что помешало бы кому-либо «редактировать» его, хотя я не могу придумать никакого способа полностью предотвратить мошенничество, если предполагается, что что-то о состоянии игры скрыто от игрока, но известно в коде апплета.