安全设置
Fileview 提供多层次的安全防护机制,保障文档预览过程的数据安全和访问控制。 网络文件预览支持域名级安全控制,可通过配置可信站点(白名单)与不信任站点(黑名单)对下载来源进行限制。系统在发起下载前会进行 URL 安全校验,黑名单优先拦截,启用白名单后仅允许来自可信域名及其子域的文件访问,确保网络文件预览过程安全可控。
🌐 网络文件预览安全控制
一、 功能背景
在启用网络文件预览能力时,系统需要从第三方站点下载文件内容。为防止以下安全风险:
- 非授权站点文件下载
- 恶意文件注入 / 钓鱼链接
- 内网 SSRF 等安全攻击
系统提供了域名级别的安全访问控制机制,在下载网络文件前进行严格校验,确保文件仅来自可信来源。
产品价值
- 防止非授权站点文件访问
- 有效降低恶意文件与 SSRF 风险
- 支持政企级安全合规要求
- 配置简单、灵活、可灰度调整
二、 安全校验总体机制
在发起任何网络文件下载前,系统都会执行 URL 安全校验流程,整体原则如下:
先拦截不可信站点,再放行可信站点;黑名单优先,白名单可选启用。
校验流程概览:
- URL 基础合法性校验
- 不信任站点(黑名单)优先拦截
- 可信站点(白名单)限制放行(可选启用)
- 校验通过后才允许下载并进入预览流程
三、 基础安全校验规则
系统在解析网络文件 URL 时,会首先进行基础校验:
- ✅ URL 不能为空
- ✅ URL 必须是合法的 HTTP / HTTPS 格式
- ✅ 必须能够解析出有效的域名(Host)
若基础校验不通过,将直接拒绝请求并返回错误提示。
四、 域名级安全控制机制
系统支持通过预览服务配置文件(application**.yml),对允许 / 禁止访问的域名来源进行精细化控制。
1. 不信任站点(黑名单,untrusted-sites)
- 用途: 明确禁止访问的域名
- 优先级: 最高,一旦命中立即拒绝,不受其他配置影响
适用场景:
- 已知风险站点
- 被封禁的第三方服务
- 临时下线的外部资源域名
2. 可信站点(白名单,trusted-sites)
- 用途: 限制仅允许访问指定域名
- 启用后: 系统只会从白名单域名下载文件,未命中白名单的请求将被拒绝
适用场景:
- 生产环境
- 政企 / 金融 / 内网系统
- 对数据来源有严格管控要求的场景
五、 域名匹配规则
域名配置支持多种常见匹配方式,大小写不敏感,多个规则用逗号分隔。
1. 支持的匹配方式
1、 精确匹配
yaml
example.com仅允许该域名本身。
2、 通配符子域名匹配
yaml
*.example.com允许:
example.comwww.example.comapi.example.com
3️⃣ 后缀匹配(子域名自动兼容)
即使仅配置:
yaml
example.com系统也会自动匹配其所有子域名,提升配置便利性。
六、 配置示例
yaml
fileview:
network:
security:
trusted-sites: example.com, *.mycompany.com
untrusted-sites: bad.example.com, malicious.com配置含义说明:
- ✅ 允许从
example.com及其子域名下载文件 - ✅ 允许从
mycompany.com的任意子域下载文件 - ❌ 明确禁止从
bad.example.com和malicious.com下载文件 - ⚠️ 黑名单优先级高于白名单
七、 典型配置模式与推荐策略
✅ 默认模式(未启用安全限制)
yaml
trusted-sites: ""
untrusted-sites: ""行为:
- 允许所有合法 URL
适用场景:
- 开发 / 测试环境
- 内网隔离环境
⭐ 推荐模式:仅启用白名单(生产环境首选)
yaml
trusted-sites: example.com, *.trusted.com
untrusted-sites: ""行为:
- 仅允许来自可信域名的文件预览
- 其他站点全部拒绝
适用场景:
- 政务系统
- 企业内部系统
- 对安全要求较高的业务场景
⚠️ 黑名单模式(补充防护)
yaml
trusted-sites: ""
untrusted-sites: malicious.com, bad-site.net行为:
- 仅拦截已知风险站点
- 其他站点仍可访问
🔒 白名单 + 黑名单(精细控制)
yaml
trusted-sites: example.com, *.trusted.com
untrusted-sites: bad.example.com行为:
- 即使属于可信域,若命中黑名单仍会被拒绝
- 黑名单始终优先生效