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 | ファイル名 | 本名、案件名、日付が出る |
| 2 | metadata要素 | 作成者やツール情報が残る |
| 3 | コメント | 作業メモや内部情報が残る |
| 4 | text要素 | 非表示文字や削除前文字が残る |
| 5 | id・class | レイヤー名や内部語が残る |
| 6 | URL | 外部リンクや内部環境が見える |
検索する文字列は、自分の名前だけでは足りません。
会社名、学校名、部署名、プロジェクト名、メール、地名、旧ハンドル名、内部略語も確認します。
見た目の確認も必要
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として中身を開いて確認します。
匿名性では、ツールで処理したことではなく、最終的に何が残っているかを見ることが重要です。
関連ツール
ExifTool
ExifToolは、画像、動画、PDF、Office文書など幅広い形式のメタデータを確認・編集できる代表的なローカルツールです。
紹介する理由: 匿名性が必要なファイルをオンライン変換サイトへアップロードせず、手元の環境でメタデータを確認しやすいため紹介します。
URL : https://exiftool.org/
MAT2
MAT2は、画像、PDF、Office文書など複数形式のメタデータ削除を目的としたローカルツールです。
紹介する理由: ファイル公開前に、ブラウザ上の簡易チェックだけでは見えにくいメタデータをローカル環境で減らす候補になるため紹介します。