安全性と限界
ファイルに対して決してしないことと、約束できないことをまとめました。仕事のファイルに使う前や、公開サービスに組み込む前に読んでください。
ファイルはどこにも送らない
変換は、それを動かしているマシンの中で終わります。アップロードも通信も、利用状況の送信もしません。アカウントも要りません。
ファイルの中身は実行しない
- マクロ、スクリプト、フォームの送信、外部へのリンクは、表示するか読み飛ばすだけで、実行しません。
- 開くのにパスワードが要るPDFは、変換を断ります。パスワードを破ろうとはしません。
- 「印刷禁止」などの権限パスワードだけが付いたPDFは、ほかのビューアと同じように開きます。この制限は宣言であってアクセス制御ではなく、document-svg はそれを守らせる仕組みを持っていません。そうしたファイルを変換してよいかは、事前に判断してください。
マシンを守る上限
ファイルの大きさ、圧縮ファイルの中身、XMLの量、ページ数に上限があります。巨大なファイルや壊れたファイルがメモリを食いつぶすことはありません。中身が10万件を超える圧縮ファイルは、展開する前に断ります。
上限は変えられますが、難しいファイルを通すためだけに引き上げないでください。
既存のファイルを上書きしない
出力先は、新しいフォルダか空のフォルダでなければいけません。すでにあるファイルを上書きすることはありません。
結果を表示するとき
SVGのページは画像として表示してください。中身をページに直接埋め込まないでください。表示用ヘルパーは簡単な確認をしますが、どんなSVGでも無害にする仕組みではありません。
公開サービスで使うなら
誰でもファイルを上げられるサービスでは、すべてのファイルを信用できないものとして扱ってください。変換は、メモリと時間に上限をかけた別のプロセスで動かしてください。
約束できないこと
- 元と1ピクセル単位で同じになるとは限りません。違いが出そうな場所は警告で知らせますが、警告がゼロでも保証にはなりません。
- Office や CAD に書き戻したとき残るのは見た目です。段落、セル、数式、グラフは戻りません。
- 一部の形式は、図全体ではなく中身の概要を表示します。
- 医療画像やレポートの匿名化はしません。ファイルに含まれる個人情報は、出力にもそのまま出ることがあります。
- 警告は「確認してください」という合図です。安全性や正確さの証明ではありません。
セキュリティの問題を見つけたら
GitHub の非公開の脆弱性報告から知らせてください。公開の Issue には書かないでください。セキュリティの修正は、最新のリリースにだけ入ります。