Я создал веб-приложение, которое позволяет отправлять деньги другим людям (например, PayPal) для проекта университета.
Для веб-страницы отправки денег есть форма, в которой пользователь может выбрать идентификатор получателя денег и сумму для отправки.
Система работает с этими запросами:
SET @moneytosend= ? ; //amount to send
START TRANSACTION;
UPDATE users SET balance= balance- @moneytosend WHERE id = ?; //sender's ID
UPDATE users SET balance= balance+ @moneytosend WHERE id = ?; //receiver's ID
COMMIT WORK;
Проблема заключается в том, что пользователь вставляет несуществующий идентификатор, и запрос все еще выполняется, эффективно удаляя деньги из отправителя.
Извините, если мой английский не идеален, и еще раз извините, если есть какие-либо ошибки форматирования.