出于何种安全原因,SVG在媒体上传器中被阻止了?


15

我看到默认情况下,在媒体上传器中SVG被阻止,您必须将其添加为functions.php中受支持的MIME类型。这背后的安全原因是什么?

Answers:


17

SVG可以包含JavaScript。JavaScript可用于劫持cookie或执行其他可疑的操作。它甚至可以在名称空间中“隐藏”:

<html xmlns="http://www.w3.org/1999/xhtml">
   <ø:script src="//0x.lv/" />
</html>

资源

在上传过程中很难将其过滤掉,因此默认情况下是不允许的。


我认为命名空间的目的是避免标签名称冲突,这意味着ø:script不应该像对待标签那样处理script任何事情。是什么导致命名空间ø:script标签被视为非命名空间script标签?还是SVG还允许嵌入非JS XML解析器?
JAB

@JAB名称空间http://www.w3.org/1999/xhtml使此脚本实例等效于常规脚本。
福厦

哦,现在我明白了。HTML标签的隐式命名空间是http://www.w3.org/1999/xhtml,因此您可以创建对该URL的引用,并将其用作此类标签的名称空间前缀,并且XHTML解析器会将其作为普通标签进行处理。
JAB
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.