Никогда не стоит доверять вводимым пользователем данным, ибо их некорректность зачастую может привести не просто к ошибке, но в худшем случае и даже к крушению сервера базы данных.
Конечно, ввод некорректных данных не всегда производится с целью взлома сайта. Другой очень частой причиной является просто невнимательность пользователя.
Здесь я опишу методы проверки вводимых данных на корректность.
Если от пользователя требуется ввести текст не более некоторого количества символов, можно, конечно, задать свойство maxlength у соответствующего input'а, но этот вариант не безопасен, ибо данные могут придти и в обход формы.
Поэтому для этих целей лучше использовать функцию substr:
$variable = substr($HTTP_POST_VARS['variable'], 0, 10);
Прежде, чем отправлять на указанный пользователем 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 этому вопросу посвящена целая ветка. Если для Вас важна степень защищенности Вашего сайта, то настоятельно рекомендую ознакомиться с этой веткой.
Webmoney Z163628999150, R61715184597
|
Leave a reply