为什么WordPress默认不允许SVG图片文件?

4
无法默认上传SVG图像文件到WordPress(4.2.2),当您尝试上传时,会收到以下消息:“对不起,出于安全原因,不允许此文件类型。”我知道这个问题已经存在一段时间了,过去我曾使用https://css-tricks.com/snippets/wordpress/allow-svg-through-wordpress-media-uploader/中的解决方案。
function cc_mime_types($mimes) {
  $mimes['svg'] = 'image/svg+xml';
  return $mimes;
}
add_filter('upload_mimes', 'cc_mime_types');

但是允许这种行为会带来什么安全隐患?为什么它默认被禁用?
2个回答

2

SVG文件相对较为丰富,因为其中包含XML甚至JavaScript。因此,处理这些文件比处理简单的图像格式更加有风险


谢谢Neil。那正是我的猜想。我希望能得到一个更具体的答案,并提供一个适用于WordPress的示例。我接受这个链接强调了一些潜在的漏洞,这些漏洞可能适用于WordPress,但在我看来,它们没有被很好地解释,并需要更多的调查才能理解。因此,虽然你的回答显然是正确和有帮助的,但我想要更多关于SVG利用如何造成损害的信息。我想象中,有人可以编写一些恶意和递归的代码,并将一些JavaScript放入SVG中?但这该怎么做呢? - Anthony

-2
SVG 图像类型在 WordPress 中无法显示。
function my_media_types($media_types){
    $media_types['svg'] = 'image/svg+xml'; 
    $media_types['psd'] = 'image/vnd.adobe.photoshop'; 
    return $media_types;
}
add_filter('upload_mimes', 'my_media_types', 1, 1);

默认情况下,WordPress不支持SVG格式,因为SVG格式会被转换为XML文件。当您设置.svg图像时,它的所有数据都以XML格式呈现,出于安全原因,WordPress默认不允许使用SVG格式或XML文件,因为XML文件可以显示所有数据,从而导致网站被黑客攻击。


1
这个答案完全无法理解。 - zkilnbqi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接