Learn

284 篇文章分类:全部
元数据

SVG 的元数据确认

SVG 是图片文件,但内部是文本。

不同于看起来像图片的 PNG 或 JPEG,SVG 文件中可能以 XML 形式原样残留图形、文字、注释、图层名、工具信息、ID、说明文等。

即使外观看起来没有问题,用文本方式打开文件时,也可能残留作者名、公司名、项目名、原始文字、编辑工具信息。

如果匿名公开图片或图表,SVG 必须被当作“会公开的文本文件”来确认,而不只是图片。

本文整理 SVG 中会残留哪些信息,以及公开前应该确认什么。

SVG 是能读取内部的图片

SVG 是 Scalable Vector Graphics 的缩写,是用 XML 表示矢量图像的格式。

圆、线、文字、路径、颜色、位置等会写成标签和属性。因此,它既能在浏览器中作为图片显示,也能用文本编辑器读取内部。

SVG 内的元素可能残留的信息匿名性中的注意点
text 元素图片内文字非显示文字也可能残留
metadata 元素作者、工具、说明制作环境可见
注释工作笔记、姓名不显示在外观中,容易漏掉
id 和 class图层名、部件名项目名和内部用语残留
文件名姓名、案件名、日期共享时原样可见

SVG 的危险在于外观和内部不一致。

屏幕上以为已经删除的文字,可能残留在 XML 中。

设计工具的信息会残留

SVG 常常从设计工具或绘图工具中导出。

这时,可能残留创建工具名、导出设置、图层名、对象名、模板名。

残留信息例子注意点
创建工具Illustrator、Figma、Inkscape 等制作环境被推测
图层名client-logo、school-map案件名或组织名出现
对象 IDuser-name、draft-title看出原本用途
注释TODO、工作笔记内部信息残留
模板名带公司名的模板连接所属

只有工具名时,有时问题不大。

但是,如果残留公司名、学校名、案件名、内部项目名、用户名,就会直接关系匿名性。

注意非显示文字

SVG 中可能残留不可见或过小的文字。

例如,如果只是把原图中的姓名移到画面外、设为透明、隐藏图层,XML 内可能仍然残留文字。

状态外观内部
透明文字看不见作为 text 元素残留
画面外文字不显示带坐标残留
隐藏图层看不见图层信息可能残留
小文字不易注意放大或确认 XML 时可读

即使作为图片看起来没有问题,也要作为文本确认内部。

需要匿名性的 SVG,不能只看外观就发布。

确认什么

公开 SVG 前,确认以下信息。

确认项目查看理由
作者名可能残留个人姓名或账号名
公司名和学校名看见所属或案件
图层名和 ID可能残留内部项目名
注释残留工作笔记或删除前信息
非显示文本残留不显示在外观中的文字
文件名共享时原样可见

确认方法很简单。

用文本编辑器打开 SVG 文件,搜索姓名、邮箱、公司名、学校名、案件名、地名、注释、不需要的字符串。

SVG 优化工具的处理

SVG 有用于删除不必要元数据和属性的优化工具。

SVGO 是用于优化 SVG 文件的代表性工具。官方仓库可以确认会删除什么、有哪些插件。

URL : https://github.com/svg/svgo

使用 SVGO 时,以作为官方本地工具处理为前提来考虑。如果把高风险 SVG 上传到 Web 上的 SVG 优化服务,XML 内的字符串和文件名可能会交给外部。

不过,通过工具并不意味着一定安全。

残留信息会因设置而变。工具主要删除不必要属性和元数据,不会判断图片中本来画出的文字、背景和含义。

即使使用 SVGO,最终也要由人确认内部。

转成 PNG 就安全吗

把 SVG 转换成 PNG 等栅格图片后,作为 XML 的文本信息基本不会显露。

不过,这不等于完全安全。

作为图片显示的文字、背景、标志、地图、画面信息会残留。此外,转换后的图片文件也可能附带其他元数据。

转换后减少的东西残留的东西注意点
XML 注释图片中可见的文字需要确认外观
图层名标志和背景看得见所属或地点
对象 ID转换后图片元数据也确认输出文件

转换是有效手段之一。

但是,转换后也要确认外观和文件信息。

共享前的实践步骤

发布 SVG 前,要固定步骤确认。

先复制原文件,制作公开用的另一个文件。接着用文本编辑器打开内部,搜索姓名和组织名。之后在浏览器中显示,确认外观中残留的文字和标志。最后查看公开用文件名是否含有个人信息。

顺序作业目的
1复制原文件分开编辑前资料和公开用文件
2作为文本打开确认 XML 内信息
3搜索姓名和组织名寻找直接线索
4用浏览器显示确认可见泄露
5修改文件名删除外侧信息

每次都按同样步骤执行,可以减少确认遗漏。

越是匆忙,越不能只靠外观判断。

高风险 SVG 要重新考虑公开格式

在内部举报、采访资料、与职场或学校有关的图、需要保护相关人员的图中,要考虑是否有必要原样公开 SVG。

SVG 很方便,但因为包含可编辑结构,容易残留信息。如果读者不需要放大或编辑,可以选择转成 PNG 后作为图片确认。

不过,PNG 化后背景和显示文字仍然会残留。

改变格式不是为了减少确认,而是为了改变要确认的信息类型。

总结

SVG 会作为图片显示,但内部是文本。

作者名、公司名、学校名、图层名、ID、注释、非显示文本、工作笔记都可能残留。

匿名公开 SVG 时,不只要作为图片查看,也要用文本编辑器确认内部。

SVGO 这样的优化工具有帮助,但请不要完全交给工具。

最终重要的是把正文、图片外观、XML 内部、文件名合在一起确认。

相关工具

Metadata inspection

ExifTool

与本文相关的外部资源。只有在符合你的处境和威胁模型时再打开。

列在这里的原因: 它可能有助于理解本文主题,但位于 Anonymity Sense 之外,使用前应先自行确认。

URL : https://exiftool.org/

打开外部网站
Metadata removal

MAT2

与本文相关的外部资源。只有在符合你的处境和威胁模型时再打开。

列在这里的原因: 它可能有助于理解本文主题,但位于 Anonymity Sense 之外,使用前应先自行确认。

URL : https://0xacab.org/jvoisin/mat2

打开外部网站

相关文章