Learn

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

SVGO 和 XML 的手动确认

发布 SVG 前,有时会使用 SVGO 这样的优化工具。

这是为了减少不必要的属性、注释、元数据,缩小文件大小。

这是一项有效工作。

但是,在匿名性确认中,不能说“经过 SVGO 所以安全”。工具删除的信息和人必须查看的信息并不相同。

本文整理使用 SVGO 的意义,以及之后为什么要作为 XML 手动确认。

什么是 SVGO

SVGO 是用于优化 SVG 文件的工具。

它用于删除不必要属性和元数据,让 SVG 变轻。官方仓库可以确认使用方法、插件和设置项。

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

这里处理的是确认官方信息后,在本地环境运行的用法。如果把 SVG 上传到在线优化服务,XML 内的信息和文件名可能会交给外部。

SVGO 很方便,但不是匿名化专用工具。

它的目的主要是优化。它不会判断并删除所有关系匿名性的信息。

工具可以减少的东西

根据 SVGO 设置,有时可以减少注释、元数据、不必要属性、空元素等。

可能减少的东西说明注意点
注释删除 XML 注释依赖设置
元数据metadata 元素等不一定是所有信息
不必要属性显示不需要的属性id 和 class 可能残留
空元素未使用元素不会判断全部非显示信息
文件大小减少多余记述不是匿名性本身

优化是发布前的重要步骤。

但是,优化和匿名化不是一回事。

需要手动确认的理由

工具无法完全判断字符串的含义。

例如,project-alpha 这个 ID 是内部项目名,还是单纯的图形 ID,不知道语境就无法判断。school-map 这个图层名是否关系匿名性,也会因发帖内容而变。

可能残留的信息为什么需要人看
id 和 class 名称需要判断是否是内部语或案件名
text 元素确认是显示文字还是隐藏文字
文件名工具处理范围外
图片内含义背景和标志不会被优化删除
语境上的信息有时只有相关人员看得懂

在匿名性中,不只看文件结构,也看含义。

这种含义确认最终要由人来做。

手动确认流程

用 SVGO 等优化后,用文本编辑器打开 SVG。

按以下顺序确认。

顺序确认内容理由
1文件名出现本名、案件名、日期
2metadata 元素残留作者或工具信息
3注释残留工作笔记或内部信息
4text 元素残留非显示文字或删除前文字
5id 和 class残留图层名或内部语
6URL看见外部链接或内部环境

搜索字符串不能只搜自己的名字。

公司名、学校名、部门名、项目名、邮箱、地名、旧网名、内部缩写也要确认。

也需要外观确认

即使 XML 很干净,作为图片可见的信息也可能残留。

标志、招牌、地图、校徽、名牌、用户名、画面通知、独特图表设计,都不会通过优化消失。

外观信息残留风险确认内容
标志组织和服务可见必要时替换
地图日常活动范围和地点可见降低粒度
画面 UI账号和通知可见确认到边缘
独特图表与过去资料连接注意模板重复使用

SVG 要同时确认作为 XML 的内部和作为图片的外观。

只看一边是不够的。

与 PNG 化的取舍

需要匿名性时,也可以选择不公开 SVG,而是转换成 PNG 等格式。

PNG 化后,XML 注释和 id 之类信息基本不会暴露在表面。

不过,PNG 化后作为图片可见的信息仍然残留。进一步说,转换后的图片也可能附带元数据。

方式优点注意点
原样公开 SVG放大也清晰,易于编辑确认 XML 内信息
SVGO 后公开能减少多余记述需要手动确认
PNG 化后公开能减少 XML 信息查看图片内信息和元数据

哪种格式更好,会因目的和风险而变。

如果不需要作为可编辑图公开,PNG 化也可以成为选项。

也要管理设置文件和原文件

使用 SVGO 时,不只要考虑处理后的 SVG,也要考虑设置文件和原文件的处理。

如果把原文件放在同一文件夹中共享,优化前的信息可能一起交出去。设置文件中也可能包含项目名或内部注释。

对象确认内容理由
原 SVG是否残留未处理信息可能误共享
输出 SVG优化后残留什么因为是最终公开物
设置文件内部注释或路径可能包含在共享对象中
文件夹名案件名或组织名zip 共享时可见
README工作笔记和负责人发布时可能一同包含

在匿名性中,不一定只看处理后文件就够了。

要确认上传的文件夹或 zip 整体中,是否混入原文件或笔记。

即使自动化,最后也要用眼睛看

如果每次都用同一流程使用 SVGO,自动化很有用。

但是,自动化不是取消确认。相反,它是为了让人最后确认而做的预处理。

自动处理后,要用文本编辑器打开内部,用浏览器显示,并确认文件名和随附文件。

高风险文件中,也可以考虑请他人审阅。不过,这也意味着要把文件交给对方,所以咨询对象要谨慎选择。

如果公开对象不是单个文件,而是 zip 或文件夹,不只要确认输出 SVG,也要确认随附内容。

旧 SVG、原始数据、工作笔记、设置文件混入时,信息会从优化后文件以外的地方泄露。

总结

SVGO 是用于优化 SVG 的方便工具。

它有时可以减少注释、元数据、不必要属性等。

但是,SVGO 不是匿名化专用工具。内部语、id、class、text 元素、文件名、作为图片可见的信息,都需要人根据语境确认。

发布前,在经过 SVGO 等工具处理后,要作为 XML 打开内部确认。

在匿名性中,重要的不是“用工具处理过”,而是最终残留了什么。

相关工具

Metadata inspection

ExifTool

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

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

URL : https://exiftool.org/

打开外部网站
Metadata removal

MAT2

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

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

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

打开外部网站

相关文章