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

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

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

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

Если от пользователя требуется ввести текст не более некоторого количества символов, можно, конечно, задать свойство 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 Комментариев: 0
Метки : ,

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

Webmoney Z163628999150, R61715184597

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


Leave a reply

;) :| :x :twisted: :) 8O :( :roll: :P :oops: :o :mrgreen: :lol: :idea: :D :evil: :cry: 8) :arrow: :? :?: :!:

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