简介

将 < > & ” ‘(小于号,大于号,&,双引号,单引号)编码,转成HTML 实体,已经是实体的并不转换。

WordPress建议,在任何需要输出一个 HTML 属性(比如alt,title,value等)的地方,都要使用 esc_attr 。

1
<input type="text" name="fname" value="<?php echo esc_attr( $fname ); ?>">

但是,如果是 img 的src属性,或者 a 的 href 属性,建议使用 esc_url,以防XSS攻击。

1
2
3
4
<img src="<?php echo esc_url( $src ); ?>" />
 
//仍然不安全
<img src="<?php echo esc_attr( $src ); ?>" />

源码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function esc_attr( $text ) {
    $safe_text = wp_check_invalid_utf8( $text );
    $safe_text = _wp_specialchars( $safe_text, ENT_QUOTES );
    /**
     * Filters a string cleaned and escaped for output in an HTML attribute.
     *
     * Text passed to esc_attr() is stripped of invalid or special characters
     * before output.
     *
     * @since 2.0.6
     *
     * @param string $safe_text The text after it has been escaped.
     * @param string $text      The text prior to being escaped.
     */
    return apply_filters( 'attribute_escape', $safe_text, $text );
}

版权声明:部分文章、图片等内容为用户发布或互联网整理而来,仅供学习参考。如有侵犯您的版权,请联系我们,将立刻删除。