wordpress 如何净化 meta框内容以防止XSS攻击?

yquaqz18  于 2022-12-18  发布在  WordPress
关注(0)|答案(1)|浏览(127)

我知道如何净化代谢盒内容

<img src=x onerror=console.log(hey) />

但是下面的呢?

<img src=x onerror=console.log(hey)<img src="x" />

尝试下面的代码,但似乎不工作.

wp_kses_post()

已尝试使用balanceTags()、条纹()、wp_kses_post()等。
sanitize_text_field()显然可以工作,但它会过滤掉所有的HTML。

bvuwiixz

bvuwiixz1#

如果存储到数据库你应该使用sanitze函数.如果你输出到浏览器你应该使用escape函数.

<img src=<?php echo esc_url('x'); ?> onerror=<?php echo esc_attr('console.log(hey)'); ?><img src="<?php echo esc_url('x'); ?>" />

使用wp_kses

$string = '<img src=x onerror=console.log(hey)<img src="x" />';

<?php echo wp_kses( $string, array( 'img' => array('src' => array() ), 'p' => array() ) ); ?>

<?php echo wp_kses( $string, 'data' ); ?>

相关问题