最合适的回答,由SO网友:J.D. 整理而成
请注意WPCS standards for PHPCS 不是“官方的”。我是维护者之一,我们所能做的就是尽最大努力符合WordPress建议的标准。在这种情况下,我不确定您将如何从wp_oembed_get()
. 当返回值通过多个过滤器时,函数可能确实需要转义,并且可能实际上包含来自oEmbed提供程序的原始未验证HTML。
如果您信任oEmbed提供程序、过滤器和网络连接,一种选择就是将这行代码列入白名单,如下所示:
echo wp_oembed_get( \'https://www.youtube.com/watch?v=someidhere\' ); // WPCS: XSS OK.
但是,如果URL是用户提供的或其他内容,并且您认为在插件上下文中信任可能的提供者是不安全的,那么您可能需要查看
wp_oembed_get()
请参阅关于制作HTML元素和属性的白名单,以期望传递给
wp_keses()
.
请注意,WordPress的核心开发人员显然觉得oEmbed发现的风险并不是很大,因此用户可以将链接粘贴到帖子中,并将其自动嵌入。WPC对这些事情非常偏执,开发人员应该知道什么时候可以接受它的建议。晚逃政策最严格的追随者之一是wp。com VIP。然而,查看其开发人员文档可以发现allow the use of wp_oembed_get()
, 虽然它建议使用其自定义实现,wpcom_vip_wp_oembed_get()
, 用于添加缓存功能。
所以最后,你可能不应该太担心逃跑wp_oembed_get()
. 如果你在WPCS\'s GitHub repo, 该函数甚至可能被添加到默认白名单中。