WordPress使用Heredoc的潜在漏洞



我在一个插件中有一个函数,它可以用程序创建帖子。它使用heredoc为post创建html,并插入分配给变量的plugins_url()

这种方法是否会造成可利用的漏洞?如果是这样的话,这将如何运作——黑客必须做什么才能利用它?

我在文件的顶部有if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly

我的功能如下:

function ra_add_post() {
$prev_post = get_page_by_title( 'Tile Puzzle',
'OBJECT',
'post' );
if ( $prev_post->post_status == false || $prev_post->post_status == 'trash' ):
$plugins_url     = plugins_url();
$html        = <<<_HERE
<div class="flex-container">
<div class="board"></div>
</div>
<audio id="audio" src="$plugins_url/tile-puzzle/Success-sound-effect.mp3"></audio>
_HERE;
endif;
$new_post = array(
'post_title'     => 'Tile Puzzle',
'post_content'   => $html,
'post_status'    => 'publish'
);
wp_insert_post( $new_post );
}
register_activation_hook( __FILE__,
'ra_add_post' );

这应该不是问题。查看wp_insert_post()文档。它自动通过sanitize_post()运行数据,这足以对其进行消毒

此外,plugins_url()只是一种将正确的URL方案返回到插件(或MU插件(文件夹的奇特方法,它并没有真正做任何危险的事情(如果plugins_url过滤器做了任何不好的事情,你会遇到更大的问题,哈哈(

如果你用用户提供的数据创建帖子,你真的只需要担心什么,但使用wp_insert_post()可以处理99.9%的问题,即使这样。

使用Heredoc也与此没有太大关系。Heredoc基本上只是HTML块的一种语法风格。它真的不比一个";"问题";(或缺少(而不是使用双引号字符串或CCD_ 8。

相关内容

  • 没有找到相关文章

最新更新