Задать вопрос
@LamerFromSpace
Студент-быдлокодер

Является ли данный код защищенным от SQL инъекций?

Интересует место после WHERE

$fields = [
        "id" => "id",
        "name" => "name",
        "birthdate" => "birthdate",
        "address" => "address",
        "phone" => "phone",
        "job" => "job",
    ];
    $search = $DB->prepare("SELECT * FROM User WHERE {$fields[$_GET['field']]}  LIKE :search");


Может есть способ поизящнее сделать? Это костыль какой то
  • Вопрос задан
  • 728 просмотров
Подписаться 3 Простой 7 комментариев
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
@MadridianFox
Web-программист, многостаночник
От инъекции как таковой код защищён. По крайней мере в лоб передать кусок запроса уже не получится.
Однако надо проверять что пользователь передаёт название существующего поля, чтобы код не падал.
А ещё надо следить чтобы сервер автоматически не превращал параметры запроса в переменные, чтобы пользователь, случайно или умышленно, не затёр вам $fields собственным массивом.
Хотя мне кажется это первое чему учат, когда говорят про безопасность в PHP)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы