Задать вопрос
Diversia
@Diversia

Что нужно соблюдать при фильтрации и проверке полей с формы в PHP?

Верно ли я понимаю, что при написании безопасного кода важно не допустить запись и показ данных, полученных с $_POST и $_GET формы в PHP? Но проверять их можно в коде до фильтрации переменных? Например...

Нельзя так:

echo $_GET["test"];

Нельзя так:

$test = $_GET["test"];
$sql = "INSERT INTO Testt (name) VALUES ($test)";
if (mysqli_query($conn, $sql)) {
      echo "Добавлено";
}

Но можно так, т.к. данные не записываются и не выводятся:

if (!preg_match("/^[&а-яa-z0-9]+$/iu", $_GET["test"])) {
   echo "Запрещенные символы";
}

Т.е. нельзя выводить и записывать $_POST и $_GET с форм, но можно проверять переменные в условиях. Верно?
  • Вопрос задан
  • 59 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
Stalker_RED
@Stalker_RED
Да, верно.
В серьёзных проектах используются библиотеки с фильтрами для входящей информации.
Например если ожидается, что в каком-то поле должна быть дата фильтр пропустит только дату, или вернёт ошибку (или null, false, или какое тм у вас соглашение).

В мелких проектах зачастую достаточно filter_input() - для большинства простых данных есть готовые фильтры.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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