Зачем в этом коде нужны функции stripslashes() и strip_tags()?

207
02 февраля 2022, 18:00
<?php
function santizeString($var) {
   if (get_magic_quotes_gpc())
      $var = stripslashes($var);
   $var = strip_tags($var);
   $var = htmlentities($var);
   return $var;
}

Пример взят из книги.
Функция sanitizeString() нужна для обезвреживания пользовательского ввода перед занесением в html. Но у меня возник вопрос: для чего здесь нужны stripslahes() и strip_tags()? strip_slahes() уместно применять при обезвреживании данных перед занесением в БД, т.е. получается, что эта функция здесь лишняя (или я неправ?). А strip_tags() как мне кажется здесь вообще не нужна, т.к. пользовательский ввод всё равно пройдёт через htmlentites() и станет безопасным.
Поправьте меня, если я не прав

Answer 1

Функция santizeString() не имеет смысла. Так как:

  1. Для записи в базу нужно использовать подготовленные выражения. (Ну ещё можно прогнать проверку допустимости символов кодировке, в которой база работает).
  2. Для вывода в браузер нужно использовать htmlspecialchars() https://www.php.net/manual/ru/function.htmlspecialchars.php с указанием режима обработки и кодировки, в которой вывод делаете.
READ ALSO
Почему RedBean считается плохим?

Почему RedBean считается плохим?

Я решил изучить ORM, мой выбор пал на RedBean, во время обучения я узнал, что многие плохо относятся к RedBeanУзнал в интернете, что лучше изучать Doctrine...

174
Как получить base64 картинки из данных input - PHP

Как получить base64 картинки из данных input - PHP

Есть форма загрузки изображений

128
Полнотекстовый поиск по значению &quot;de&quot; в mySQL

Полнотекстовый поиск по значению "de" в mySQL

В поле language VARCHAR(2) содержится двухбковенная аббревиатура языка

104
Как сделать правильные окончания слов?

Как сделать правильные окончания слов?

Как сделать правильные окончания слов, например: 1 товар, 2 товара, 5 товаров и тд

90