Статьи ⇒ PHP ⇒ Правильная обработка переменных

Правильная обработка переменных

Опубликовано: 21 дек 2012 в 09:16
Автор: freeeeez  

Не все, но многие знают, что переменные, в которые данные поступают от пользователя, необходимо проверять на правильность. Неверные вхождения могут привести к различного рода неприятностям (взлому системы). Этого можно избежать используя несколько правил, которых следует придерживаться на всех этапах разработки приложения. Это также касается проверки чужого кода на наличие уязвимостей. 

Итак, главное, что необходимо запомнить и уяснить: всех пользователей считаем злоумышленными, а данные, поступаемые от них, опасными. Исходя из этого, лучшей тактикой будет проверять все входящие данные на их соответствие необходимым нормам. 

Стоит также заметить, что для обеспечения большей безопасности рекомендуется настроить сервер Linux и оптимизировать его работу. Как это сделать, читайте в других статьях. Если вы недостаточно квалифицированы в данном вопросе, то следует прибегнуть к помощи профессионалов.

Данные от пользователя поступают методами GET и POST. Первый метод передает переменную в URL страницы, второй использует прозрачный способ обмена, незаметно для пользователя. Существует несколько методов проверки переменных, применение каждого из которых требуется в том или ином случае. 

Для обработки переменных, данные из которых в последствии подставляются в SQL запрос, в PHP существует отличная функция для экранирования спецсимволов mysql_real_escape_string

$name=mysql_real_escape_string($_GET['name']);

Функция экранирует кавычки и слеши, которые могут привести к изменению логики запроса. Привыкайте проверять переменные перед их присваиванием. Так вы избегаете множества ошибок в последующих операциях.

Если переменная представляет собой число, например год рождения, то лучшим методом обработки будет приведение переменной к числовому виду. 

$year=(int)$_GET['year'];

И уже не важно, что введет пользователь в эту переменную, если не число, то данная конструкция вернет 0. 

Обрабатывать пользовательский ввод, где разрешены теги форматирования текста, например, на форумах или в комментариях, можно с помощью фукнции strip_tags, которая вырезает теги из переменной.

$text=strip_tags($_POST['text'],'<p><a><b><i>');

Второй аргумент функции содержит теги, которые не вырезаются из переменной. Если вы хотите полностью удалить теги, тогда оставьте его пустым или вообще уберите. 

Пользователи также могут писать участки программного кода, который должен отображаться на странице как есть, без форматирования. Это можно сделать обработав переменную с текстом функцией htmlspecialchars.

$text=htmlspecialchars($_POST['text']);

Функция преобразует все HTML-теги в их сущности, которые игнорируются браузером и воспринимаются как обычный текст. 

Подобная обработка переменных убережет вас от многих атак на ваши сайты. Удачи! 

Тэги:  • 
Нет комментариев
4 699 просмотров


Оставить комментарий:

Имя:
Email:
Сайт:
Комментарий:

Допустимые теги: <em> • <strong> • <u> • <sub> • <sup> • <blockquote>

Проверочный код:

Введите проверочный код, для подтверждения, что вы не робот.
P.S. Если вы робот, то, к сожалению, вы
не сможете прочитать символы с картинки.