filter_var vs htmlentities vs htmlspecialchars - PullRequest
14 голосов
/ 06 августа 2011

Ответственность

Это не вопрос о том, должны ли мы бежать для ввода в базу данных. Это строго смотрит на технические различия между тремя функциями в названии.

Существует этот вопрос , обсуждающий разницу между htmlentities() и htmlspecialchars(). Но в действительности это не обсуждает filter_var(), и информация, которую я нашел в Google, была примерно такой: «Убедитесь, что вы избегаете пользовательского ввода, прежде чем он появится!»

Мои вопросы:

  • Почему htmlspecialchars() и htmlentities() обычно используются вместо filter_var()?
  • Есть ли какое-то снижение производительности при использовании filter_var()?
  • Разве filter_var() не так безопасен, как другие два варианта?
  • Есть ли какая-либо другая причина НЕ использовать следующее для кодирования пользовательского ввода до того, как echod

filter_var($var, FILTER_SANITIZE_FULL_SPECIAL_CHARS);

1 Ответ

9 голосов
/ 06 августа 2011

Мое предположение (об отсутствии усыновления) было бы просто потому, что расширение Filter включено только по умолчанию начиная с v5.2, тогда как методы html * использовались дольше.

...