Drno, я согласен с тем что мотивация за зеленые галочки - это так себе. Но здесь скорее дисциплинарный момент. Суть не в галочке, а элементарной вежливости. С которой у автора вопроса большие проблемы.
Если бы сoобщения об ошибках были на нормальном IT языке, можно было бы их хотя бы погуглить.
Но даже по этим находится ответ здесь же на qna. Вы его пробовали?
Артур, то есть вы даже не понимаете, что здесь, нет ни ваших ваших "подготовленных функций", ни "админов". А только код. Который является однозначно вредоносным (и притом бессмысленным: даже если данные были "подготовлены по фукциям", нет ни малейшего смысла добавлять их в запрос вразнобой, если уж библиотека поддерживает подстановку через плейсхолдеры).
Причём если даже следовать вашей логике (изначально кривой, но сейчас не об этом), то скорее это заведомо целочисленный id может быть "подготовлен" заранее, чем содержимое $b, которое может представлять любое значение для любого поля. Но при этом id попадает в запрос нормально, а $b - нет. Весь этот код - один сплошной анекдот для тех кто понимает.
Хотя бы покажите мои замечания тем, кто разбирается. Возможно, помимо исправления этого анекдота, они даже сподобятся убрать инъекцию через имя поля.
Проблема этого сайта отнюдь не в кураторах.
А в незнайках, которые пишут неграмотный код, и потом вертятся как ужи на сковородке, лишь бы не признавать его кривизну, рассказывая про каких-то админов, перекладывая на них ответственность за свой кривой код :)
Елена, объясните толком, что значит "пытается зайти по адресу сервера". Почему вас это удивляет?
Ещё раз: Putty не спрашивает у вас логин и пароль. Задача этой программы именно в том в том, чтобы "зайти по адресу сервера". А уже сервер у вас запрашивает логин (если вы его не указали вместе с хостом) и пароль.
Запустила. Ввела логин, потом пароль. Он выдал предупреждение
Только наоборот - сначала Putty вывел предупреждение, а потом сервер запросил логин и пароль.
Елена, объясните толком, что значит "подставляет неверные данные"? Путти не сохраняет пароли. Если речь не про пароль, а про логин, то вы его написали перед именем хоста через собаку, вот так
elena@192.168.1.100
загрузите сохранённое соединение и отредактируйте поле с хостом, подставив в него другое имя
Опять вы почему-то говорите о чём угодно, только не про код. Теперь про каких-то админов.
Вы реально не в состоянии прочесть две строчки кода, которые сюда откуда-то скопипастили?
Речь не про каких-то админов. А про очевидно бессмысленный и небезопасный код, который одно значение передаёт нормально, а второе напрямую в запрос
$sql = "UPDATE {$this->table} SET $a = '$b' WHERE id = ?";
$this->query($sql, [$id]);
Если так хочется посмеяться, то посмотрите на свой позорный код. Но вы, судя по всему, даже не понимаете, что в нём не так. И что он должен быть написан по-другому:
$sql = "UPDATE {$this->table} SET $a = ? WHERE id = ?";
$this->query($sql, [$b, $id]);
Чтобы быть логичным и предотвращать хотя бы очевидные инъекции. При этом всё оставаясь уязвимым, но это уже второй вопрос.
Clone362, а вы можете объяснить, зачем вам "вариант с json", если, по вашим же словам, информация в нём все равно не меняется - то есть идентична записи в таблице заказов (за исключением статуса)?
Ну если только добавить ещё больше ада в эту вашу и без того странную схему, то оставить json, но при этом добавить поле со ссылкой на справочник статусов. Так вы и сохраните зачем-то бессмысленный json и получите юзабельную структуру БД, которую вам предложили выше.
При чем здесь какая-то экономическая деятельность? Речь про код. Который весь состоит из инъекций. И который должно быть стыдно выкладывать на люди. Не говоря уже о том, чтобы так жалко оправдываться, показывая, что вы за 7 лет так и не научились писать безопасный код, и до сих пор считаете, что так и надо.