@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");


Может есть способ поизящнее сделать? Это костыль какой то
  • Вопрос задан
  • 634 просмотра
Решения вопроса 1
@MadridianFox
Web-программист, многостаночник
От инъекции как таковой код защищён. По крайней мере в лоб передать кусок запроса уже не получится.
Однако надо проверять что пользователь передаёт название существующего поля, чтобы код не падал.
А ещё надо следить чтобы сервер автоматически не превращал параметры запроса в переменные, чтобы пользователь, случайно или умышленно, не затёр вам $fields собственным массивом.
Хотя мне кажется это первое чему учат, когда говорят про безопасность в PHP)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы