我对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_*()
在模板中输出不受信任的数据时。