Skip to content

安全设置

Fileview 提供多层次的安全防护机制,保障文档预览过程的数据安全和访问控制。 网络文件预览支持域名级安全控制,可通过配置可信站点(白名单)与不信任站点(黑名单)对下载来源进行限制。系统在发起下载前会进行 URL 安全校验,黑名单优先拦截,启用白名单后仅允许来自可信域名及其子域的文件访问,确保网络文件预览过程安全可控。

🌐 网络文件预览安全控制

一、 功能背景

在启用网络文件预览能力时,系统需要从第三方站点下载文件内容。为防止以下安全风险:

  • 非授权站点文件下载
  • 恶意文件注入 / 钓鱼链接
  • 内网 SSRF 等安全攻击

系统提供了域名级别的安全访问控制机制,在下载网络文件前进行严格校验,确保文件仅来自可信来源。

产品价值

  • 防止非授权站点文件访问
  • 有效降低恶意文件与 SSRF 风险
  • 支持政企级安全合规要求
  • 配置简单、灵活、可灰度调整

二、 安全校验总体机制

在发起任何网络文件下载前,系统都会执行 URL 安全校验流程,整体原则如下:

先拦截不可信站点,再放行可信站点;黑名单优先,白名单可选启用。

校验流程概览:

  1. URL 基础合法性校验
  2. 不信任站点(黑名单)优先拦截
  3. 可信站点(白名单)限制放行(可选启用)
  4. 校验通过后才允许下载并进入预览流程

三、 基础安全校验规则

系统在解析网络文件 URL 时,会首先进行基础校验:

  • ✅ URL 不能为空
  • ✅ URL 必须是合法的 HTTP / HTTPS 格式
  • ✅ 必须能够解析出有效的域名(Host)

若基础校验不通过,将直接拒绝请求并返回错误提示。

四、 域名级安全控制机制

系统支持通过预览服务配置文件(application**.yml),对允许 / 禁止访问的域名来源进行精细化控制。

1. 不信任站点(黑名单,untrusted-sites)

  • 用途: 明确禁止访问的域名
  • 优先级: 最高,一旦命中立即拒绝,不受其他配置影响

适用场景:

  • 已知风险站点
  • 被封禁的第三方服务
  • 临时下线的外部资源域名

2. 可信站点(白名单,trusted-sites)

  • 用途: 限制仅允许访问指定域名
  • 启用后: 系统只会从白名单域名下载文件,未命中白名单的请求将被拒绝

适用场景:

  • 生产环境
  • 政企 / 金融 / 内网系统
  • 对数据来源有严格管控要求的场景

五、 域名匹配规则

域名配置支持多种常见匹配方式,大小写不敏感,多个规则用逗号分隔。

1. 支持的匹配方式

1、 精确匹配

yaml
example.com

仅允许该域名本身。

2、 通配符子域名匹配

yaml
*.example.com

允许:

  • example.com
  • www.example.com
  • api.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.commalicious.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

行为:

  • 即使属于可信域,若命中黑名单仍会被拒绝
  • 黑名单始终优先生效