首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >您需要对哪些WP函数使用esc_html()或esc_url()?

您需要对哪些WP函数使用esc_html()或esc_url()?
EN

WordPress Development用户
提问于 2018-01-06 22:43:17
回答 2查看 2.5K关注 0票数 8

我遇到过这样的情况:人们在某些WP函数(如esc_html() )中使用了esc_url()home_url('/')。在<a>链接的打开锚标记中有一个示例,该链接返回到主页,如下所示:

代码语言:javascript
运行
复制
<a href="<?php echo esc_url( home_url( '/' ) ); ?>"> 

您如何知道哪些WP函数需要转义,使用esc_html()esc_url()是否重要?

任何建议或指导都会很棒。

EN

回答 2

WordPress Development用户

回答已采纳

发布于 2018-01-06 23:46:36

任何返回数据的人。

  • 如果一个函数在内部输出,那么它将负责转义
  • 如果一个函数返回要使用的数据,它将被取消转义以避免双重转义,这是您的责任。

这是因为您应该总是延迟转义,以便毫无疑问地,如果一个变量被转义了。

如果像home_url这样的API的输出是预转义的,那么这将不再是真的。它还将引入双重转义,在某些情况下可以用来突破过去的转义。

一些进一步的说明:

  • 别费心逃避静态字符串了,这是没有意义的
  • 不要试图将像the_permalink这样的函数包装在esc_url等中,转义函数仍然是函数,它们不是神奇的修饰符/荧光笔,告诉PHP要保护一些东西。
  • 不要在变量中返回复杂的HTML片段,返回数据,数据不需要转义,但是转义复杂的HTML片段并不容易,而且通常不可能安全地执行。
  • 在使用短代码/过滤器时,请确保转义您添加/修改的部分,但对其余部分置之不理,并相信它已被转义,在这些情况下,您没有责任转义在其他地方生成的输出。尽管如此,如果它被用于指导您自己的代码,也不要将其作为输入来信任。
票数 11
EN

WordPress Development用户

发布于 2018-01-06 23:30:48

任何不受信任的数据(包括来自数据库的数据)的输出都必须经过净化。WordPress代码规范描述可用的功能:https://codex.wordpress.org/Data_验证

遵循WordPress编码标准的代码嗅探器甚至需要清理来自WordPress核心函数的输出。例如,您可以在PhpStorm中打开这样的代码嗅探器。

有时这样的要求是过分的,但最好遵循编码标准,以获得更可靠的代码。

票数 3
EN
页面原文内容由WordPress Development提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://wordpress.stackexchange.com/questions/290351

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档