Принцип аукциона: у клиента есть счет в БД, он может изменять ставки. Безопасность?

Гриша К.

Новичок
Принцип аукциона: у клиента есть счет в БД, он может изменять ставки. Безопасность?

Есть две таблицы:
-----------------------------------------------------------

(1) Customers (customerid, customer, password, e-mail, account)

CREATE TABLE `customers` (
`...`
`account` decimal(10,2) default NULL,
PRIMARY KEY (`customerid`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ;

Где account - счет клиента, на который также предполагается автоматически записывать суммы, который клиент будет перечислять при помощи электроных систем оплаты (пока предполагается только ручное внесение суммы администратором по платежке)

-----------------------------------------------------------

(2) Orders (orderid, customerid, productid, worldid, countryiso, cityid, objekt, signature, amount, status, date)

CREATE TABLE `orders` (
`...`
`amount` decimal(10,2) default NULL,
`...`
PRIMARY KEY (`orderid`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ;

Где amount - ставка клиента по данному объекту
-----------------------------------------------------------

При увеличении ставки (amount), со счета списывается разница между новой и старой ставкой, к примеру если текущая ставка 1.00, и пользователь изменяет ее на 1.25, то со счета списывается 0.25.

Уменьшение ставки запрещено.

Вопросы:
[1] Так как я первый раз сталкиваюсь с необходимостью предоставления счета в БД для клиента, я хотелбы узнать нет ли каких-то особых требований к такой организации: например при создании таблиц в БД, или при операциях по изменению счета (например когда со счета списывается какя-то сумма).

[2] Если уменьшение ставки будет разрешено, то соответсвенно та часть на которую она была уменьшена будет прибавляться к счету. При такой реализации не возникает ли острая опасность того, что клиент может повысить счет на сколько захочет, нужны ли какие-то осбые меры предосторожности (не считая использования функции mysql_real_escape_string или intval, хотя у числа 0.00 при обработке функции intval не записываются, и я использую mysql_real_escape_string).

-~{}~ 21.03.06 21:08:


Администраторы, ответте пожалуйста, почему вы перенесли тему в офтоп.
Вы перенесли ее потому что, нет никакой необходимсоти в особо организации БД, при тако задаче?
Или подскажите мне какже сократить этот вопрос, чтобы его не убирали в офтоп.
Жду ответа!
 

confguru

ExAdmin
Команда форума
Гриша К.

Учите русский, и спрашивайте правильно.
 

Гриша К.

Новичок
сПАСИБО за ответ.

-~{}~ 21.03.06 22:56:

Администраторы. Посмотрите пожалуйста в таком варианте я могу создать тему в разделе "Вопросы по программированию на РНР", я переделал постановку вопроса и тему.

Тема: User повышает ставку рекламного блока, средства списываются со счета БД. Безопасность

Зарегестрированный пользователь на сайте имеет счет, который он может пополнить, оплатив деньги в банке, после прихода платежки админ зачисляет соответсвенную сумму на счет. Позже предполагается автоматическое знаисение средств на счет, при оплате электронными деньгами.
Данные счета хранятся БД (поле account - `account` decimal(10,2) default NULL):
Customers (customerid, customer, password, e-mail, account)


Также пользователь может размещать на сайте некоторую информацию, к примеру реклманый блок, который располагается в зависимости от суммы ставки для нее, чем выше ставка, тем выше позиция рекламного блока (рекламный блок размещается бессрочно).
Информация о ставке хранится в другой таблице (поле amount - `amount` decimal(10,2) default NULL):
Orders (orderid, customerid, productid, worldid, countryiso, cityid, objekt, signature, amount, status, date).

Когда пользователь увеличивает ставку, с его счета списвыается разница между новой ставкой и старой.
Уменьшать ставку запрещено.
Пример изменения ставки и счета:
[Текущая ставка] = 1.00$
[Счет] = 10.00$

Пользователь увеличивает ставку:
[Новая ставка] = 1.25$
[Счет] = [Счет] - ([Новая ставка] - [Текущая ставка]) = 10.00$ - (1.25$ - 1.00$) = 10.00$ - 0.25$ = 9.75$

Вопросы:
[1] При такой реализации (организация счета для пользоватеяля и его изменение, путем изменения ставок), ненужны ли какие-то специальные меры безопасности (организация БД, специальная обработка информации от пользователя, кроме прослэшивания), по защите счета пользователя от списывания средств на другой счет, или обнуления или повышения?

[2] К примеру если дать возможность, пользователю уменьшать ставку, тогда средства на счету будут увеличиваться, не будет ли это дополнительной возможностью для доступа к счету злоумышленниками.


Я та понимаю молчание знак соглаия. Личное сообщение я также отправлял admin.
 
Сверху