filter_var vs htmlentities vs htmlspecialchars

Cha*_*rry 15 php escaping html-entities htmlspecialchars filter-var

放弃

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

这个问题讨论的区别htmlentities()htmlspecialchars().但是,它并没有真正讨论filter_var(),我在谷歌上找到的信息更像是"确保你在回应之前逃避用户输入!"

我的问题是:

  • 为什么htmlspecialchars()htmlentities()常用的filter_var()
  • 是否有一些性能受到影响filter_var()
  • filter_var()不是像其他两个选项一样安全?
  • 是否有任何其他原因在使用之前不使用以下内容对用户输入进行编码 echod

filter_var($var, FILTER_SANITIZE_FULL_SPECIAL_CHARS);

Ste*_*hen 10

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

  • 因为它允许开发人员使用具有不同参数的相同过滤器方法来执行各种过滤和清理,而不必使用不同的参数调用不同的方法. (8认同)