На Ubuntu просто выполните
sudo apt-get install php5-mysql
Для защиты от Внедрения SQL используют подготовленные операторы, если это возможно. В противном случае используйте mysql_real_escape_string для строк, (международного) кастинга или intval () для целых чисел, (плавания) или floatval () для плаваний и addcslashes ($input, '% _'), чтобы строки использовались в операторах LIKE. Вещи становятся еще более сложными при попытке выйти из строк, которые будут использоваться в операторах RLIKE.
Для фильтрации содержимого HTML, лучшим был бы strip_tags (без передающего $allowable_tags), но... Вы не можете любить/хотеть его, в этом случае наиболее доступное решение:
$escaped = htmlspecialchars($input, ENT_QUOTES, $your_charset);
А более надежное решение состояло бы в том, чтобы пользоваться библиотекой как Очиститель HTML
, функции Фильтра в порядке, но некоторые из них являются большим количеством блоков проверки допустимости, чем фильтры. В зависимости от Ваших потребностей можно найти некоторых из них полезными.
Это действительно зависит, что Вы пытаетесь сделать, я не могу действительно ответить, не зная специфических особенностей. Возможные фильтры и их эффекты перечислены здесь: Типы фильтров
Вы корректируетесь filter_var
при помощи его с FILTER_*
константы . Это кажется, что Вы ищете санитизация из данных (на самом деле корректирующий данные для создания этого безопасным*), а не проверка (проверка, что данные безопасны).
Различные фильтры могут помочь с различными задачами. В то время как mysql_real_escape_string
хорошо для очистки данных для предотвращения Внедрения SQL, это бесполезно для вывода данных, которые могут содержать HTML. Вот несколько фильтров, которые я использовал бы для повседневных задач:
FILTER_SANITIZE_SPECIAL_CHARS
- полезный для отображения (не удаляющий) код HTML, предотвращая нападения на XSS и преобразовывая символы в объекты HTML. FILTER_SANITIZE_STRING
с STRIP_LOW/HIGH
флаги - на самом деле удаляют HTML (см. strip_tags
). FILTER_SANITIZE_URL
- делает URL safe*. FILTER_SANITIZE_EMAIL
- делает адреса электронной почты безопасными, хотя я предпочел бы использовать, это - кузен проверки прежде, чем сохранить адрес. * я использую безопасный свободно, я имею мнение, что Вы никогда не можете быть слишком уверены.
Только на основе некоторого незначительного тестирования, я пришел к выводу это filter_var
константы не защищены.
Например:
filter_var('a@b-.c', FILTER_VALIDATE_EMAIL); // valid
filter_var('http://.', FILTER_VALIDATE_URL); // valid
filter_var('a@b-.c', FILTER_SANITIZE_EMAIL); // a@b-.c
filter_var('http://.', FILTER_SANITIZE_URL); // http://.
Это явно недопустимые значения, но передача filter_var
константы. Не доверять filter_var
.