Learn

メタデータ

SVGOとXMLの手動確認

匿名性の判断で見落としやすい手がかりを、実践前後の確認に使える形で整理します。

SVGを公開する前に、SVGOのような最適化ツールを使うことがあります。

不要な属性、コメント、を減らし、ファイルサイズを小さくするためです。

これは有効な作業です。

しかし、匿名性の確認では「SVGOを通したから安全」とは言えません。ツールが削る情報と、人間が見なければならない情報は違います。

この記事では、SVGOを使う意味と、その後にXMLとして手動確認する理由を整理します。

SVGOとは

SVGOは、SVGファイルを最適化するためのツールです。

不要な属性やメタデータを削り、SVGを軽くするために使われます。公式リポジトリでは、利用方法やプラグイン、設定項目を確認できます。

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

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

ExifToolは、画像、動画、PDF、Office文書など幅広い形式のメタデータを確認・編集できる代表的なローカルツールです。

紹介する理由: 匿名性が必要なファイルをオンライン変換サイトへアップロードせず、手元の環境でメタデータを確認しやすいため紹介します。

URL : https://exiftool.org/

外部サイトを開く
Metadata removal

MAT2

MAT2は、画像、PDF、Office文書など複数形式のメタデータ削除を目的としたローカルツールです。

紹介する理由: ファイル公開前に、ブラウザ上の簡易チェックだけでは見えにくいメタデータをローカル環境で減らす候補になるため紹介します。

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

外部サイトを開く

関連記事