2013-12-13 5 views
1

Я начинаю изучать PHP 5 (я всегда использовал PHP 4), и для этого я создаю небольшую (очень легкую) CMS. В руководстве я увидел, что они добавили функции для фильтрации варов. Моя CMS должна обрабатывать некоторый HTML-контент для содержимого страниц. Являются ли эти функции (filter_input, filter_var, ecc ..) достаточно дезинфицирующими фильтрами? Или мне нужно создать более глубокую пользовательскую функцию?Filter php 5 input

+0

Это зависит от ваших потребностей. прочитайте эти фильтры и посмотрите, соответствуют ли они тем, что вам нужно. Если нет, сделайте глубже. –

+0

Если это веб-мастер, который входит в html, вам не нужно его фильтровать. Если это hmlt, написанный любым пользователем (даже зарегистрированным в нем), вам нужно написать html sanitizer. Я лично успешно использовал [Очиститель HTML] (http://htmlpurifier.org/). –

ответ

-1

Да, этого почти всегда достаточно, чтобы использовать их. Однако, в зависимости от каждого вашего запроса или каждого отображаемого вами содержимого страницы, имейте в виду, что не очень специальные символы также могут вызывать неожиданности. Вкратце,

  • Если вы вставляете в mysql, указываете все и не допускаете, чтобы строки содержали необработанные кавычки. Используйте mysql_real_escape_string и его друзей.
  • Если вы пишете в файл, вы в безопасности - помните только то, что вы читаете.
  • Если вы поместите значения по умолчанию в поля ввода, обратите внимание на ту же цитату, которую вы используете вокруг свойства value. Вредоносные строки попытаются закрыть цитаты.
  • Если вы выводите HTML, используйте html_special_chars, чтобы избежать сюрпризов. Большой знак и амперсанд - ваши враги, если вы не справляетесь с ними.

Sanitizers сделают все для вас (фильтрация низких символов и т. Д.).

+1

Почему вы сказали ему использовать _almost_ ** устаревший ** (способ для уязвимых) 'mysql _ * _ escape_anything' вместо использования PDO ????? Используйте ** PDO ** ради бога! или mysqli в этом отношении – hanzo2001

+0

Так как ему нужно разрешить некоторые HTML, html_special_chars мало помогает ему. –

+0

mysqli в порядке - вот почему я сказал «... и его друзья». PDO - это что-то ненужное на этом уровне. Но все в порядке. – dkellner