我对esc_html() 和wp_kses(). 我明白这一点esc_html() 将特殊字符转换为其HTML实体wp_kses() 删除不需要的标签(例如。,<script>), 但我不确定在什么情况下它们应该一起使用还是分开使用。
如果我通过esc_html(), 然后任何JavaScript都将以纯文本显示,而不是由浏览器呈现,因此在这一点上是安全的,对吗?唯一的理由是也要经历wp_kses() 是为了避免显示原始脚本?
大体上esc_html() 使其安全,并且wp_kses() 让它变得漂亮。对吗?
最合适的回答,由SO网友:Chip Bennett 整理而成
至少是一般规则as espoused by Mark Jaquith, 是sanitize on input, escape on output (这条规则的推论是sanitize early, escape late).
So:使用消毒过滤器(如kses() 在数据库中存储不受信任的数据时,使用转义筛选器(即esc_*() 在模板中输出不受信任的数据时。