Задать вопрос
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 с форм, но можно проверять переменные в условиях. Верно?
  • Вопрос задан
  • 56 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
Stalker_RED
@Stalker_RED
Да, верно.
В серьёзных проектах используются библиотеки с фильтрами для входящей информации.
Например если ожидается, что в каком-то поле должна быть дата фильтр пропустит только дату, или вернёт ошибку (или null, false, или какое тм у вас соглашение).

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

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

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