Проверить входящие данные $_POST в PHP
$amount = abs($_POST['amount']);
$md = intval($_POST['md']);
$md принимает цифровое значение и используется в коде для сравнения.
Правильно настроена фильтрация передаваемых данных?
Обошли следующую проверку:
if ($balance - $amount >= 0)
Значение $balance берётся из сессии пользователя.
$balance = $data['balance'];
Массив с данными пользователя:
if(isset($_SESSION['id'])) {
$sql = $pdo->Query("SELECT * FROM `users` WHERE `id` = '".(int)$_SESSION['id']."'");
$data = $sql->Fetch();
$numq = $sql->RowCount();
$sess = (int)$_SESSION['id'];
$sess_login = $data['login'];
if($numq == 0) { session_start(); session_destroy(); }
}
Точно известно:
- $amount и $md - передавалось как положительное число.
- Сессия не была взломана.
- Sql инъекция не использовалась.
- $balance после обхода проверки изменилось на отрицательное число.