首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >esc_html、esc_attr、esc_html_e等有什么区别?

esc_html、esc_attr、esc_html_e等有什么区别?
EN

WordPress Development用户
提问于 2018-12-07 15:59:49
回答 2查看 26.5K关注 0票数 22

我得到了安全人员的反馈,他指出,我应该在代码中使用用户输入的适当转义。所以我做了一些研究发现了逃逸函数。

他们之间有什么区别?我应该什么时候使用esc_html(),什么时候使用esc_attr()?最后,我应该在_e()中使用这些函数吗?

EN

回答 2

WordPress Development用户

发布于 2018-12-07 16:28:01

esc_html()转义字符串,使其不被解析为HTML。例如,像<这样的字符被转换为<。这在读者看来是一样的,但这意味着如果要输出的值是</code>,那么浏览器就不会将其解释为实际的脚本标记。</div><div>每当输出的值不应包含HTML时,请使用此函数。</div><div><strong><code>esc_attr()</code></strong>转义字符串,以便在<code>class=""</code>属性中使用是安全的,例如<code>D5</code>。这防止了一个值从HTML属性中分离出来。例如,如果值为<code>"><script>alert();,并且试图将其输出到HTML属性中,它将关闭当前的HTML标记并打开脚本标记。这不安全。通过转义该值,它将无法关闭HTML属性和标记,并输出不安全的HTML。

在HTML属性中输出值时使用此函数。

esc_url()转义一个字符串,以确保它是一个有效的URL。

在输出href=""src=""属性内的值时使用此函数。

esc_textarea()转义一个值,以便在</code>元素中安全使用。通过使用此函数转义值,可以防止<code><textarea<</code>内部输出的值关闭<code><textarea></code>元素并输出自己的HTML。</div><div>在输出<code><textarea></code>元素内的值时使用此函数。</div><div><code>esc_html()</code>和<code>esc_attr()</code>也有以<code>__()</code>、<code>_e()</code>和<code>_x()</code>结尾的版本。这些用于输出可翻译的字符串。</div><div>WordPress具有<code>__()</code>、<code>_e()</code>和<code>_x()</code>等函数,用于输出可翻译的文本。<code>__()</code>返回可转换字符串,<code>_e()</code>回显可翻译字符串,<code>_x()</code>返回具有给定上下文的可转换字符串。你可能以前见过他们。</div><div>由于您不一定相信翻译文件包含安全值,所以在输出可翻译字符串时使用这些函数可以确保输出的字符串不会导致上述相同的问题。</div><div>在输出可翻译字符串时使用这些函数。</div>

票数 47
EN

WordPress Development用户

发布于 2018-12-07 16:04:13

esc_html将在html内部使用,例如在

标记之间。

代码语言:javascript
运行
复制

esc_attr将用于转义html标记上的属性值,如下所示:

代码语言:javascript
运行
复制

_e应用到末尾是为了将它与文本域一起使用,并将自动回显它,例如:

代码语言:javascript
运行
复制

除了_e之外,还有__,它与_e相同,但不回显,因此可以将其存储在变量中。

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

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

复制
相关文章

相似问题

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