回显到页面时是否需要转义 simplepie $itme->get_content() 输出?
Does simplepie $itme->get_content() output need to be escaped when echoing to page?
我有一个 WordPress 插件,可以读取 RSS 提要并将其输出到管理页面中的浏览器。在插件中,它使用来自 WordPress (wp-includes/feed.php) 的标准 feed.php 模板,它使用 SimplePie 通过 WordPress 获取提要。
页面循环遍历提要项目并使用 $item->get_title()
和 $item->get_content()
通过直接回显到页面来输出项目标题和内容。
我有一个用户联系我,告诉我他们在他们的网站上完成了安全审计但失败了,因为我们使用了 $item->get_content()
并且在输出到浏览器之前没有转义它,而且这是一个 XSS 漏洞,因为 HTML 正在从供应商的网站读取并且需要转义。
这是正确的吗?
在所有使用 get_content()
函数的文档中,它们显示回显 $item->get_content()
结果。
有人可以阐明这一点,以便我可以最好地与安全审计团队 and/or 用户一起解决这个问题 - 或者如果需要转义则正确更新插件。
谢谢!
唐
审核有误。 SimlePie 确实 在内部转义内容。如果您查看 SimplePie class 源代码,您会看到这个 属性 定义了将被剥离的标签:
public $strip_htmltags = array('base', 'blink', 'body', 'doctype', 'embed', 'font', 'form', 'frame', 'frameset', 'html', 'iframe', 'input', 'marquee', 'meta', 'noscript', 'object', 'param', 'script', 'style');
因此 <script>
标签被剥离 - 因此无法进行 XSS 攻击。
这是 SimplePie 的默认行为,所以除非你故意通过调用 $feed->set_stupidly_fast(true)
告诉它在快速模式下 运行(正如你看到的函数名称不言自明:))或者通过调用 $feed->strip_htmltags(true)
;它将 运行 进入安全模式。
来自 SimplePie 文档:
SimplePie protects against malicious feeds by sanitizing the data.
我有一个 WordPress 插件,可以读取 RSS 提要并将其输出到管理页面中的浏览器。在插件中,它使用来自 WordPress (wp-includes/feed.php) 的标准 feed.php 模板,它使用 SimplePie 通过 WordPress 获取提要。
页面循环遍历提要项目并使用 $item->get_title()
和 $item->get_content()
通过直接回显到页面来输出项目标题和内容。
我有一个用户联系我,告诉我他们在他们的网站上完成了安全审计但失败了,因为我们使用了 $item->get_content()
并且在输出到浏览器之前没有转义它,而且这是一个 XSS 漏洞,因为 HTML 正在从供应商的网站读取并且需要转义。
这是正确的吗?
在所有使用 get_content()
函数的文档中,它们显示回显 $item->get_content()
结果。
有人可以阐明这一点,以便我可以最好地与安全审计团队 and/or 用户一起解决这个问题 - 或者如果需要转义则正确更新插件。
谢谢! 唐
审核有误。 SimlePie 确实 在内部转义内容。如果您查看 SimplePie class 源代码,您会看到这个 属性 定义了将被剥离的标签:
public $strip_htmltags = array('base', 'blink', 'body', 'doctype', 'embed', 'font', 'form', 'frame', 'frameset', 'html', 'iframe', 'input', 'marquee', 'meta', 'noscript', 'object', 'param', 'script', 'style');
因此 <script>
标签被剥离 - 因此无法进行 XSS 攻击。
这是 SimplePie 的默认行为,所以除非你故意通过调用 $feed->set_stupidly_fast(true)
告诉它在快速模式下 运行(正如你看到的函数名称不言自明:))或者通过调用 $feed->strip_htmltags(true)
;它将 运行 进入安全模式。
来自 SimplePie 文档:
SimplePie protects against malicious feeds by sanitizing the data.