У меня возникает ошибка устаревания на PHP 7.4.3

Я новичок в пхп. Я запускаю проект последней главы под названием «Гнездо Робина» из книги «Изучение PHP, MySQL и JavaScript с помощью jQuery».

В файле function.php функция sanitizeString вызывает следующую ошибку устаревания:

Устарело: функция get_magic_quotes_gpc() устарела в C:\xampp2\htdocs\MyProjects\robinsnest\functions.php в строке 42.

Моя версия php — 7.4.3, и я использую Xampp в операционной системе Windows 10. Я проверил руководство по PHP для этой функции и увидел, что функция была устарела начиная с PHP 7.4.0.

Как я могу изменить эту функцию, чтобы она не использовала устаревшую функцию get_magic_quotes_gpc() и по-прежнему получала эквивалентную функциональность, поскольку похоже, что функции замены нет?

 function sanitizeString($var)
  {
    global $connection;
    $var = strip_tags($var);
    $var = htmlentities($var);
    if (get_magic_quotes_gpc())
      $var = stripslashes($var);
    return $connection->real_escape_string($var);
  }

person Rilwan Smith    schedule 03.04.2020    source источник
comment
Просто избавьтесь от всего этого утверждения if.   -  person Barmar    schedule 04.04.2020
comment
Отвечает ли это на ваш вопрос? Как я могу предотвратить внедрение SQL в PHP?   -  person Progman    schedule 04.04.2020
comment
Используйте подготовленные операторы вместо экранирования строк — последнее пропускает некоторые случаи и может вызвать уязвимости в системе безопасности.   -  person halfer    schedule 07.06.2020
comment
@halfer, когда вы запускаете «Гнездо Робина» на локальном хосте? Это очень медленно?   -  person deanstreet    schedule 07.12.2020
comment
@deanstreet: я думаю, что вы предназначали свой запрос автору этого вопроса, Рилвану Смиту (мой аккаунт прикреплен к вопросу, потому что я его отредактировал).   -  person halfer    schedule 07.12.2020
comment
@Rilwan Smith Когда вы запускаете «Гнездо Робина», вы находите его очень медленным?   -  person deanstreet    schedule 07.12.2020
comment
нет, это не было медленным. @deanstreet   -  person Rilwan Smith    schedule 09.12.2020


Ответы (1)


Просто избавьтесь от кода, использующего эту функцию. Это не было актуально для многих версий.

 function sanitizeString($var)
  {
    global $connection;
    $var = strip_tags($var);
    $var = htmlentities($var);
    return $connection->real_escape_string($var);
  }

Обратите внимание, что эта дезинфекция не подходит для начала. htmlentities() следует использовать только при отображении данных на веб-странице, а не при обработке ввода. А $connection->real_escape_string() следует использовать только при подстановке переменных в строку SQL, но для этого лучше использовать подготовленные операторы.

person Barmar    schedule 03.04.2020