为什么在线预览也需要安全设计
很多团队只关注“能不能打开”,忽略了“谁能打开、能看多少、能不能带走”。一个没有做任何限制的预览地址,本质上是把文件公开到了互联网上——任何人拿到链接都能查看,甚至截图外传。
防线一:动态水印
水印是最低成本的震慑手段。把查看者的身份信息(用户名、手机号后四位、时间戳)渲染成水印,一旦内容外泄,可以快速定位来源。
https://view.moxudoc.cn/?src={文件URL}&watermark=内部资料-张工-20260712
防线二:防复制与内容保护
通过限制文本选择、右键菜单与打印行为,可以显著提高整段复制内容的成本。需要提醒的是,任何前端限制都无法做到 100% 绝对防护(截图始终存在),它的价值在于提高门槛 + 配合水印追溯。
防线三:试读页数控制
对于合同、报告、白皮书等长文档,可以让未付费或无权限用户只看到前几页,既能展示内容价值,又不会把全文交出去。
# 只允许试读前 3 页 https://view.moxudoc.cn/?src={文件URL}<=3
防线四:地址与文件加密
前三条防线保护的是“内容”,这一条保护的是“通道”。预览地址可以按 AppKey 生成带有效期与签名的加密链接,过期即失效;文件本身也可以加密存储,只有通过校验的请求才会被服务端解密渲染。二者结合,即使链接被转发,超出有效期或超出授权范围也无法打开。
组合使用建议
| 业务场景 | 推荐组合 |
|---|---|
| 内部知识库 | 动态水印 + 防复制 |
| 对外白皮书 / 产品手册 | 试读页数 + 动态水印 |
| 合同 / 报价单预览 | 地址加密 + 水印 + 防复制 |
| 涉密或强合规场景 | 私有化部署 + 地址加密 + 试读 + 水印 |
小结
四种能力通过 URL 参数即可开启,不需要改造文件本身,也不需要额外的开发工作。组合使用的原则是:能少给就少给,给了要能追溯。如果你的场景有更强的合规要求,可以考虑私有化部署,让文档与渲染过程都留在内网。