if($user['cat'] == 0){
// Проверяем наличие категории
$mesto_cat = DB::$the->query("SELECT mesto FROM `sel_category` WHERE `mesto` = '".$message."' ");
$mesto_cat = $mesto_cat->fetchAll();
if (count($mesto_cat) != 0)
{
$chat = escapeshellarg($chat);
$message = escapeshellarg($message);
exec('bash -c "exec nohup setsid php ./select_cat.php '.$chat.' '.$message.' > /dev/null 2>&1 &"');
exit;
}
}
Скажите пожалуйста как иправить sql иньекцию, если $message будет "qwe'; DROP TABLE sel_category; --"
Ни в коем случае нельзя создавать запрос из переменной, введенной пользователем. Можно использовать плейсхолдеры, можно подготовленные выражения.
НО! Не надо давать широкие возможности ввода. Если позволено вводить число - парсите ввод на число. Если имя - проверяйте на "лишние" символы. Не подставляйте ввод без обработки!!!
Судя по query/fetchAll
- DB::$the
у вас PDO
либо прокси к нему.
Используйте его prepared statements
$mesto_cat = DB::$the->prepare("SELECT mesto FROM `sel_category` WHERE `mesto` = ?");
$mesto_cat->execute([$message]);
$mesto_cat = $mesto_cat->fetchAll();
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
ЗдравствуйтеСуть проблемы: есть 4 поля в БД id, category_id,brands_id, models
У меня есть вот такой XML, который прекрасно работает в SOAPIU: