我是偶然发现这个问题的。一位客户发给我一个可缩放矢量图形(SVG)徽标进行转换。我在 svg2png.org 上将其转换为便携式网络图形(PNG)格式。一切看起来都很正常。
随后,客户注意到他们的旧公司名称被嵌入到了 PNG 文件的元数据中。该 SVG 文件是基于模板创建的,原始作者的姓名仍然保留在其中——在任何查看器中都不可见,但在转换过程中却被保留了下来。
你的 SVG 文件中隐藏了什么
SVG 文件可能包含:创建者姓名、软件版本、创建者计算机上的文件路径,如果文件是从带有位置标记的软件中导出的,甚至可能包含全球定位系统(GPS)坐标。这些信息都不会在浏览器中显示。但它们都会在转换为光栅格式时保留下来。
我检查了来自公开来源的 50 个随机 SVG 文件。其中 38 个包含可识别的元数据。12 个包含创建者的全名。3 个包含内部网络路径。
如何检查
在文本编辑器中打开任何 SVG 文件。查找 <metadata>、<dc:creator> 或 <rdf:RDF> 块。你会惊讶于里面包含的内容。
如何解决
在将 SVG 转换为任何光栅格式之前:
const 解析器 = new DOMParser();
const svg文档 = 解析器.parseFromString(svg字符串, 'image/svg+xml');
const 元数据 = svg文档.querySelector('metadata, rdf\:RDF, dc\:creator');
if (元数据) 元数据.remove();
const 清洁Svg = new XMLSerializer().serializeToString(svg文档);
在发现这个问题后,我将此元数据清除功能添加到了 svg2png.org。该转换器现在在渲染到画布之前会移除所有嵌入的元数据。你转换后的 PNG 文件仅包含像素数据——没有隐藏的历史记录。
这也适用于其他文件类型。我在 webp2png.io 和 genbarcode.org 构建了类似的隐私优先转换器——均在处理前剥离可交换图像文件格式(EXIF)数据和元数据。
在文本编辑器中打开你的 SVG 文件。你可能会不喜欢你所发现的内容。
免责声明:本文内容来自互联网,该文观点不代表本站观点。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请到页面底部单击反馈,一经查实,本站将立刻删除。