Skip to content
marstone edited this page Sep 14, 2018 · 12 revisions

接口概述

安全文件

背景

  • FileAPI提供的下载链接默认是匿名的,任何人知道链接即可访问。 这在非HTTPS、链接被分享扩散情况下,存在一定的安全风险
  • 可对单独文件设置为“安全的”,其语义是:下载该文件必须先提供一个token
  • token可分为三种,可分别支持服务端/客户端获取、限时/限次、要求登录等功能
  • 201803新增

规范

  • 对于单个文件,可设定 meta.secure = true ,含义为下载时必须在 url 中给出 access_token。可通过如下方法设置:
  1. PUT /file?secure=true
  2. POST /file/{id}/meta
  • 其他 meta 参数:
{
  "secure" : {boolean},     // 是否验证token,默认false
  "token" : {string},       // token内容
  "tokenExpire" : {long},   // token超时时间,Unix时间戳,仅适用于自管token
  "tokenDisposable" : {boolean}, // 是否一次性,默认false,仅适用于自管token
}
  • 三种 token
  1. 应用授权的oauth的token
    应用场景是:应用负责变更最终交付给用户的下载链接。不允许浏览器直接下载。
    适用于应用本身有足够知识精确保护的情况,可提供最大的安全性
    此场景的限制是:需要服务端导流量、需高度定制化使用
  2. 用户授权的oauth的token
    应用场景是:与上面场景相似,但可做下载审计。不允许浏览器直接下载。
    此场景的限制是:需用户授权
  3. FileAPI自管token
    应用场景是:调用FileAPI生成token可用于前端直接使用
    可通过时间戳或次数保障链接分享不带来安全问题
    此场景的限制是:链接刷新后失效。

Clone this wiki locally