安全与局限
这里整理了它绝不会对文件做的事,以及它无法保证的事。在处理工作文件、或接入公开服务之前,请先读一读。
文件不会发送到任何地方
转换在运行它的机器上完成。不上传、不联网、不收集使用数据,也不需要账号。
文件里的内容不会被执行
- 宏、脚本、表单提交和外部链接只会被显示或跳过,绝不执行。
- 需要密码才能打开的 PDF 会被拒绝转换,而不是去破解密码。
- 只设置了权限密码(例如“禁止打印”)的 PDF,会像其他查看器一样被打开。这些限制只是声明,不是访问控制,document-svg 不会强制执行。是否可以转换这类文件,请事先自行判断。
保护机器的上限
文件大小、压缩包内容、XML 数据量和页数都有上限,超大或损坏的文件不会把内存耗尽。条目超过 10 万个的压缩包会在解压之前被拒绝。
上限可以调整,但不要只是为了让难处理的文件通过而调高。
不会覆盖已有文件
输出位置必须是新的或空的文件夹,已有的文件绝不会被覆盖。
显示结果时
请把 SVG 页面当作图片显示,不要把内容直接嵌进页面。显示辅助工具会做基本检查,但并不是通用的 SVG 净化工具。
用在公开服务上时
如果任何人都能上传文件,请把所有文件都当作不可信的。请在单独的、限制了内存和时间的进程里运行转换。
无法保证的事
- 不保证与原件逐像素一致。可能有差异的地方会用警告提示,但没有警告也不代表保证。
- 写回 Office 或 CAD 时保留的是外观,段落、单元格、公式和图表不会恢复。
- 有些格式显示的是内容概要,而不是完整图形。
- 不会对医学影像和报告做匿名化处理。文件中的个人信息可能原样出现在输出中。
- 警告是“请检查”的信号,不是安全性或准确性的证明。
发现安全问题时
请不要发公开 Issue,而是通过 GitHub 的私密漏洞报告告诉我们。安全修复只会进入最新的发布版本。