使用WordPress内部函数时,何时需要使用esc_attr

时间:2012-12-10 作者:Howard

例如,当我在属性标记中放置WordPress值时,以下方法不需要esc_attr

e、 g。

// JS code
alert(\'<?php echo get_bloginfo(\'name\');?>\');
以下方法确实需要esc_attr

// JS code
alert(\'<?php echo esc_attr($post->post_title);?>\');
使用什么约定?

3 个回复
最合适的回答,由SO网友:s_ha_dum 整理而成

You can look at the Codex.

编码(<;>&;“\'(小于、大于、与号、双引号、单引号)。永远不会对实体进行双编码。

有鉴于此,可以说,both of those strings need sanitization. 设想一个站点名称如下>> "My" Website\'s Great Title <<"

此外,由于您正在Javascript中使用此选项,因此您可能应该使用esc_js 相反

约定是,“了解标记如何工作,恶意黑客如何工作,并相应地采取行动。”这就是您知道如何使用这些函数的方式。而且Trust No One.

另请参阅我们会员的这篇文章Stephen Harris: Data Sanitization and Validation With WordPress

SO网友:Otto

您使用esc_attr() 当您输出要在HTML属性中显示的内容时。

在您的情况下,您应该使用esc_js(), 或者可能json_encode() 相反

SO网友:M-R

如果你的文章标题中有单引号。您的代码输出将是

警惕(“很糟糕”);

也就是说,破坏JavaScript代码,您将获得“意外标识符”。当您使用esc_attr, 输出将是

警报(“It坏”);

文章标题将被编码,以便在字符串中工作。

结束