
图片、视频以及下载的文件会被其他网站直接引用,带宽成本会短时间内成倍增长,但是流量在日志中显示为正常的200次请求,很难及时发现。
防盗链的基础就是来源校验。根据请求头中的来源字段来判断是否来自授权页面,白名单里包含了本站域名以及必要的合作方,不符合条件的请求会返回禁止状态码或者占位图。要注意协议和子域名的区别,http 和 https、带 www 和不带 www 属于不同的来源,遗漏的话会造成站内资源被自己拦截。
空来源请求要区分开来。有些客户端和直接访问不发送来源字段,一律拒绝的话就会误伤正常使用的用户,可以允许空来源的图片、限制下载类的文件,或者把判断条件放宽到来源为空并且请求频率异常。
用时效签名来代替高价值资源。给下载地址加上过期时间和签名参数,把地址复制到外部网站之后就会失效,分发成本可以控制,不会影响正常的业务。另外设置带宽和请求数告警,当出现异常突增的时候就可以找到具体的文件。
规则上线之后会抽查拦截记录,确认站内页面都正常之后才会逐渐提高阈值。