PHP, проверка вводимых пользователем данных

Категория: PHP Комментариев: 3

Никогда не стоит доверять вводимым пользователем данным, ибо их некорректность зачастую может привести не просто к ошибке, но в худшем случае и даже к крушению сервера базы данных.
Конечно, ввод некорректных данных не всегда производится с целью взлома сайта. Другой очень частой причиной является просто невнимательность пользователя.
Здесь я опишу методы проверки вводимых данных на корректность.

Длина переменной

Если от пользователя требуется ввести текст не более некоторого количества символов, можно, конечно, задать свойство maxlength у соответствующего input'а, но этот вариант не безопасен, ибо данные могут придти и в обход формы.
Поэтому для этих целей лучше использовать функцию substr:

$variable = substr($HTTP_POST_VARS['variable'], 0, 10);

Адрес Email

Прежде, чем отправлять на указанный пользователем email-адрес какие-либо письма, вмолне целесообразным будет проверить его валидность.
Сделать это можно так:

if(!preg_match("/[a-zA-Z0-9_-.+]+@[a-zA-Z0-9-]+.[a-zA-Z]+/", $email))
 die("некорректный email-адрес");

Числовые данные

Если пользователем передаются числовые данные, то перед использованием рекомендуется их проверить на то, действительно-ли они являются числами.
Делается это с помощью функции intval:

$myint = intval($_POST['myint']);

Спецсимволы в строках

Перед вставкой принятых от пользователя строковых данных в БД их следует проверить на наличие спецсимволов, и экранировать их.
Лучше всего для этого использовать функцию mysql_escape_string:

$sql = "INSERT INTO table VALUES \"" . mysql_escape_string($text) . "\"";

PS: Всё это основные методы защиты, которые должны обязательно использоваться при разработке PHP-скриптов. На форуме CodeNet этому вопросу посвящена целая ветка. Если для Вас важна степень защищенности Вашего сайта, то настоятельно рекомендую ознакомиться с этой веткой.

Автор: Кто-то   @   11 февраля 2010 Комментариев: 3
Метки : ,

Поблагодарить автора

Webmoney Z163628999150, R617151845974

Комментариев: 3

Комментарии
Янв 23, 2011
11:02
#1 Vadim :

Здравствуйте.

У меня к Вам большая просьба, пожалуйста, поясните — в какое место на странице нужно вставить функцию проверки e-mail на валидность?

Очень нужная деталь, а то задолбали уже липовые ящики при комментировании...

Спасибо, надеюсь на реальную помощь. И, к стати, какой у Вас плагин стоит для preview? Интересная реализация...

Автор Фев 15, 2011
9:57

В функцию, обрабатывающую POST-данные от Вашей формы для комментария.

Но этот код проверяет только то, действительно-ли введенный в поле текст является email-адресом. Проверить, действительно-ли существует этот адрес он не может.

марта 11, 2011
15:46
#3 o :

Проверка, email-адреса на валидность:

$email = explode ('@', $email);

$emailhost = $email[1];

if (!dns_get_mx ($emailhost, $mxhostsarr))

echo 'Invalid email address';

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

Предыдущая запись
«
Следующая запись
»