Очистка $_POST от нежелательных символов

266
02 июня 2017, 14:28

Сервер принимает данные, в которые легко можно записать любой скрипт или попробовать пробится через защиту на сервере или БД кавычками. Я пытаюсь закрыть все уязвимости максимально чисто, но при этом есть два условия:

  • Кавычки и переносы строк нужно оставить, в настоящем виде конечно не стоит, полагаю я их заменю с помощью htmlspecialchars. При этом переносы строк идут из textarea, так что там будет происходить замена \n на <br>.
  • При проверке на пустое содержимое поля - поле с только символами, то есть кавички или точки не должны проходить проверку и ответ будет "поле пустое".

В начале скрипта у меня установлена функция, зачищающая массив $_POST от лишнего, выглядит примерно так:

function quote_clear($data) {
  $data = str_replace("\n", '<br>', $data);
  $data = strip_tags($data, '<br>');
  $data = htmlspecialchars($data, ENT_QUOTES);
  return $data;
}
function quote($var) {
  foreach ($var as $row) {
   if(is_array($row)) {
     foreach($row as $row2) {
       $row2 = quote_clear($row2);
     }
   } else {
     $row = quote_clear($row);
   }
  }
    return $var;
}

По-моему тут мало шансов что пройдет вредоносный код.

  • Как теперь правильно определить состоит ли любая строка из одних символов что бы ее отсеять?
  • И как стоит хранить теги переноса строк в БД: как тут, то есть в виде html сущностей и расшифровывать при выводе, или можно их хранить без преобразования?

Благодарю за внимание.

READ ALSO
RedBeanPhp ошибка- Uncaught [HY000] - SQLSTATE[HY000]:

RedBeanPhp ошибка- Uncaught [HY000] - SQLSTATE[HY000]:

Запускаю добавление статьи в базу данных,а мне выдает ошибку:

325
Как интегрировать ГИС ЖКХ

Как интегрировать ГИС ЖКХ

Нужно интегрировать ГИС ЖКХ на работе через php, но я никак не могу разобраться с инструкциейНужно сделать цифровую подпись сертификата

605
Модуль для постов WordPress

Модуль для постов WordPress

Подскажите исходники, модуль позволяющий, после логина пользователя добавлять посты в закладки(для WP пишу)

196
Сравнение дат

Сравнение дат

Насколько коректно сравнивать даты таким образом?

221