Обработка и фильтрация переменных, поступающих в скрипт сайта
К списку статей
Большинству программистов известно, что переменные требуют тщательный проверки на правильность, после поступающих в них данных. Если вхождение неверно, то система может быть подвержена взлому. Возможно избежать данной ситуации, если использовать определённые правила проверки поэтапно, в разработке приложения. Чужой код таким же образом проверяется на уязвимость.
Главное, что необходимо установить это определение для всех пользователей как для злоумышленников, а поступающие данные от них, как потенциально опасные. Отсюда, наиболее приемлемой тактикой будет проверка всех входящих данных на соответствие необходимым нормам.
Также необходимо отметить, что для наилучшего обеспечения безопасности, требуется оптимизировать и настроить сервер Linux. Об этом читайте в другой статье. Если ощущаете, что нехватает профессиональных навыков в совершении данных процедур, то следует обратиться к помощи квалифицированных специалистов.
Существует два метода поступления данных от пользователя это GET и POST. С помощью первого метода передаётся переменная URL страницы, с помощью второго используется незаметный для пользователя, прозрачный способ обмена. Для проверки переменных используют несколько методов, в зависимости от ситуации. Например, PHP-функция mysql_real_escape_string используется для экранирования спецсимволов при обработке переменных, из которых данные поставляются в SQL запрос.
Данная функция отображает кавычки и слеши, которые могут повлиять на логику запроса. Хорошая привычка это проверять переменные перед тем, как присвоить их. Таким образом, вы можете избежать множества ошибок в дальнейших операциях.
В случае, если переменная выглядит как число, например год рождения, то здесь потребуется приведение переменной к числовому виду.
В любом случае, при вводе пользователем чего-угодно в данную переменную, то эта конструкция вернёт 0.
Чтобы обработать пользовательский ввод, с разрешёнными тегами форматирования текста (форумы и комментарии), можно воспользоваться функцией strip_tags, и вырезать этим самым теги из переменной.
Во втором аргументе функции содержатся теги, которые не вырезаются из переменной. Если у вас есть желание избавиться от тегов полностью, тогда оставьте поле пустым или уберите его вообще.
Можно также запретить пользователям писать программный код при заполнении текстовых полей, тогда код будет отображаться на странице просто как текст, в исходном виде, без форматирования. Это достигается путём обработки переменной с текстом посредством функции htmlspecialchars.
Данной функцией преобразуются все HTML-теги в их сущности, которые браузером воспринимаются как обычный текст.
Использование подобной обработки переменных поможет вам избежать спонтанных атак на ваши сайты.