Показать сообщение отдельно
Старый 13.09.2009, 17:45
HraD вне форума Посмотреть профиль Отправить личное сообщение для HraD Найти все сообщения от HraD
  № 21  
Ответить с цитированием
HraD

Регистрация: Apr 2009
Сообщений: 17
Цитата:
Сообщение от Tr1te Посмотреть сообщение
Дело то дело.
Но дело в валюте, например чтобы купить что-то надо 10000 попугаев, А у него, 200 попугаев, и злоумышленник фабрикует запрос на получение 10к попугаев, я же не ограничу диапазоном, так как он эти 10к реально может получить.
И проблема вовсе не идти направо, налево и пр.
Как происходит у вас: С сервера юзеру приходит 10000 попугаев, он хочет купить вещь за 6000 попугаев. Юзер нажимает на кнопку КУПИТЬ и на сервер уходит сообщение, что у юзера количество попугаев поменялось с 10000 на 4000 и появилась вещь АРТЕФАКТ_1. Это пишется в базу.

Как должно быть: С сервера юзеру приходит 10000 попугаев, что является всего лишь отображением его суммы на сервере. Он хочет купить вещь за 6000 попугаев. Юзер нажимает на кнопку КУПИТЬ и на сервер уходит запрос на осуществление данной транзакции. Сервер проверяет, может ли этот юзер купить эту вещь, хватает ли ему попугаев для этого и т.д. В положительном случае сервер вычитает со счета юзера 6000 попугаев, записывает ему АРТЕФАКТ_1 и шлет сообщение, что теперь у тебя 4000 попугаев и АРТЕФАКТ_1.
Как-то так...