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();
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники