SVG / publication review / local guide

SVGを実行せず、公開前の修正対象を分ける

外部参照、scriptやイベント属性などの実行リスク、未解決URLを別々に記録します。SVGを表示・実行・送信せず、静的な確認票だけを作ります。

3つの境界を分ける

公開前はSVGをブラウザで表示せず、テキストレビューで分類します。参照先があることと、コードが実行され得ることは同じではありません。

reference: image href="https://example.invalid/a.png"
execution-risk: <script> or onload="..."
unresolved: url(#local-id) or relative/path.png
decision: fix / remove / verify before publish
分類確認すること
external-referencehrefxlink:href、CSSのurl()などが外部originを指していないか確認する。取得はしない。
execution-riskscript、イベント属性、実行につながる要素は公開前に除去または専門レビューへ回す。
unresolved相対URL、fragment、変数の参照先は解決済みとみなさず、出所と公開条件を確認する。
local-reference同一文書内の安全な定義参照でも、公開用途に必要かを確認し、外部参照とは分ける。

修正依頼票の書き方

  1. 対象属性または要素名をそのまま書く。
  2. external / execution-risk / unresolved / local-referenceを一つ選ぶ。
  3. URLを取りに行かず、未確認は未解決として残す。
  4. remove、replace、verifyなどの修正依頼と担当確認を記す。

このページはSVGをrender、execute、uploadしません。未確認の安全性を推測せず、公開前の差し戻し材料として使います。

既存のSVG toolを開く

レビューケース

case判定依頼例
external-referenceexternal-reference外部originの参照を削除または同梱確認。
script-elementexecution-riskscriptを削除し、静的SVGだけにする。
event-handlerexecution-riskonload等のイベント属性を除去する。
unresolved-relative-urlunresolved参照元と公開時の解決条件を確認する。
safe-local-referencelocal-reference同一文書内参照の必要性を確認する。
unsupported-uploadrejectuploadや実行を伴う確認依頼は差し戻す。

入力を送信しない

本番SVG、token、個人情報をこのガイドへ貼り付けないでください。ローカルの合成caseだけで分類を確認し、実ファイルは既存の承認手順で扱います。