最合适的回答,由SO网友:J.D. 整理而成
否,中没有固有的安全缺陷$wpdb
, 或者在短代码中使用它。但是,如果不小心使用,可能会引入漏洞。您主要应该考虑两个问题。
第一个是逃跑。您需要确保在查询中使用任何可能由用户控制的值时,这些值都会被转义。做到这一点的最好方法是准备好的声明和$wpdb->prepare()
. 在您的代码中,这不是必需的,因为get_current_blog_id()
应该是安全的。然而,这是一个好习惯:
$result = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM `wp_multilingual_linked` WHERE `ml_source_elementid` = \'360\' and `ml_blogid` = %d", $blogid ) );
有时需要考虑的另一件事是,您的查询是否可能向用户公开不应该公开的信息。例如,您不想让其他用户公开私人帖子。在您的情况下,我认为这不是一个问题,因为您没有查询可能受到限制的数据。但要记住这一点是一件好事,这样在必要的情况下,您就可以进行适当的功能检查,而不是无意中将特权信息暴露给非特权用户。