Данный код абсолютно устойчив к sql-инъекциям, потому что в нем нет sql запросов. Есть только подключение к БД и отключение.
Ладно, допустим, запрос появится.
* htmlspecialchars - это не способ защиты от sql инъекции. Это способ обезопашивания вывода в браузер тех данных, в которых не должно быть html сущностей. Ее конечно можно применять перед вставкой в базу, но не надо думать, что она защитит от инъекций. Инъекции - это не только кавычки.
* if (ini_get("magic_quotes_gpc")) stripslashes. Посте обработки строки htmlspecialchars кавычки превратятся в " и stripslashes не будет убирать перед ними слеш. Если эта функция используется, то должна использоваться перед htmlentities.
* mysql_real_escape_string. Этой функции можно доверять. Но не стоит проверять этой функцией численные данные и данные, которые должны соответствовать шаблону (например, номер телефона), потому что это бессмысленно.
Численные данные можно обрабатывать с пом. $d = (double)$d, $i = intval($i) и т.д.
Данные, которые должны соответствовать шаблону можно проверять регулярками:
if (!preg_match('/^[+\d()\s-]+$/')){это точно не телефон}. Конечно, можно более точную регулярку написать.
Вот.
|