filter_var vs htmlentities vs htmlspecialchars

免責聲明

这不是一个关于我们是否应该转义数据库输入的问题。这是严格关注标题中三个功能之间的技术差异。

一个问题讨论了htmlentities()htmlspecialchars()之间的区别。但是,它并没有真正讨论filter_var(),我在Google上找到的信息更像是“确保在回声之前逃离用户输入!

我的问题是:

  • 为什么和通常使用超过?htmlspecialchars()htmlentities()filter_var()
  • 使用是否会对性能造成一些影响?filter_var()
  • 不如其他两个选项安全吗?filter_var()
  • 有没有其他理由不使用以下内容对用户输入进行编码echod

filter_var($var, FILTER_SANITIZE_FULL_SPECIAL_CHARS);


答案 1

我的猜测(关于缺乏采用)仅仅是因为过滤器扩展从v5.2开始就默认启用,而html *方法已经存在了更长的时间。


答案 2

推荐