开发者学堂课程【管理功能玩转对象存储 OSS 使用入门:设置OSS数据防盗链】学习笔记,与课程紧密联系,让用户快速学习知识
课程地址:https://developer.aliyun.com/learning/course/378/detail/4747
设置OSS数据防盗链
如何设置OSS的防盗链
1、因为 oss 收费项目中包含流量费和行政次数,如果 oss 中的文件被盗链会对bucket 造成严重的经济损失,因此防盗链功能对 oss 使用者是非常重要的,0SS 是按使用量收费的服务,为了减少用户存储于 OSS 的数据被其他人盗链而产生额外费用。OSS 支持基于 HTTP header 中表头字段 referer 的防盜链方法。
2、操作流程
进入管理控制台-对象存储 OSS-Bucket 管理, 点击右侧设置-防盜链设置。
登陆控制台点击防盗链设置,可以看到 refer 还没有设置,证明这个 Bucket 还没有使用防盗链功能,这个 refer 白名单为空,现在这种状态下无论是选择允许 refer 为空,还是不允许 refer 为空,都是不会检查 refer 是否为空的,不然会导致所有的请求都会被拒绝,当 refer 白名单不为空的情况下,比如现在添加一下 refer 白名单,添加 http://aliyun.com,如果设置不允许 refer 为空,这样表示当 HTTP header 中表头字段为 http://www.aliyun.com 的请求才能被允许,其他的所有请求,包括 refer 为空的请求都是会被拒绝的。如果设置为允许 refer 为空,那么证明 HTTP header 中表头字段为 http://aliyun.com 或者为空的时候,这些请求不会被允许,其他的请求都会被拒绝,但是需要注意的是如果需要使用浏览器直接浏览,那么需要设置允许 refer 字段为空才可以。点击相关帮助看一下限制说明,首先控制台 refer 白名单,是需要使用换行符有分隔,同时 refer 白名单支持通配符*和问号,这个意思就是控制台已经添加了一个白名单,当需要添加第二个 refer 白名单的时候是需要按回车,在第二行重新添加一个新的白名单,同时白名单支持通配符*和问号。比如添加 http://www.*com,第二个用户只有通过 URL 签名或者匿名访问中 Bucket 的文件才会做防盗链验证,如果请求的 header 中有authorization 字段的,不会做防盗链验证,最后一个需要用户注意的是 Bucket 的三种权限,私有读写,公共读和公共读写这三种权限都会检查 request 字段。