В контексте игры (HTML5 / Flash / Silverlight), которая отправляет данные в онлайн-службу для записи прогресса (например, игрок убил орка), будет ли связь со службой через SSL неявно предотвращать запись и воспроизведение сообщения игроком? Я знаю, что SSL включает одноразовый номер, но остается ли он постоянным на протяжении всего соединения или меняется после каждого цикла запроса / ответа?
Одноразовый номер находится на уровне транспортного уровня, а не на уровне приложения. SSL будет предотвращать воспроизведение только в том случае, если игрок перехватывает TCP-пакеты и затем пытается воспроизвести их. Но в браузере на уровне HTTP пользователь может легко создать новый запрос, просто обновив страницу ...
Нет, не будет, потому что пользователь может использовать прокси-сервер, который расшифровывает отправляемые данные в любом случае, и этот прокси-сервер будет отображать все запросы и все ответы. Он узнал бы, что запрос, отправленный, когда он убил орка, был чем-то вроде GET /killed/orc
и он мог просто отправить это из браузера или Curl. Затем он мог бы написать сценарий, который 100 раз убивает орка, используя простой цикл bash.
Вам нужно будет проверить, действительно ли вы послали орка, чтобы он хотя бы убил. Вероятно, дайте этому орку уникальный идентификатор, чтобы в худшем случае пользователь мог убивать только те вещи, которые вы действительно отправили.