关注云服务器
相关知识分享

阿里云OSS怎么设置防盗链

阿里云OSS是一个非常不错的东西,可以把网站的所有静态资源都放在离自己客户较近区域的阿里云OSS上,方便访问,也方便统一管理。

当然,阿里云OSS的费用也是比较贵的,如果被人盗链的话~费用相当可观的,阿里云OSS的费用分两部分组成,一是存储费,就是说你静态资源放在阿里云OSS就要收费。二是流量费,你的静态资源被访问产生的流量是需要收费的。所以设置防盗链非常有必要,避免产生高额流量费用。我们一起来看一下怎么操作吧~

设置防盗链功能,包括以下参数:

  • Referer 白名单。仅允许指定的域名访问 OSS 资源。
  • 是否允许空 Referer。如果不允许空 Referer,则只有 HTTP 或 HTTPS header 中包含 Referer 字段的请求才能访问 OSS 资源。

说得直白一点,Referer就是一把钥匙,你可以设置你的OSS资源需要钥匙访问,也可以设置不需要钥匙访问,也就是空Referer。指定Referer的意思就是你设置好可以访问OSS资源的钥匙,并且只能通过这把钥匙来访问。

我们来举个例子:

对于一个名为 oss-example 的 Bucket,设置其 Referer 白名单为https://cloud-ping.com/。则所有 Referer 为https://cloud-ping.com/的请求才能访问 oss-example 这个 Bucket 中的 Object。

细节分析

  • Referer 验证
    • 用户只有通过签名 URL 或者匿名访问 Object 时,才会做防盗链验证。请求的 Header 中有 Authorization 字段的,不会做防盗链验证。
    • Bucket 的三种权限(private,public-read,public-read-write)都会做防盗链验证。
  • Referer 配置
    • 一个 Bucket 可以支持多个 Referer 参数。通过控制台设置时使用回车作为换行符分隔,通过 API 设置时使用英文逗号(,)分隔。
    • Referer 参数支持通配符星号(*)和问号(?)。
  • Referer 效果
    • Referer 白名单为空时,不会检查 Referer 字段是否为空(否则所有的请求都会被拒绝)。
    • 如果 Referer 白名单不为空,且不允许 Referer 字段为空,则只有 Referer 属于白名单的请求被允许,其他请求(包括 Referer 为空的请求)会被拒绝。
    • 如果白名单不为空,但允许 Referer 字段为空,则 Referer 为空的请求和符合白名单的请求会被允许,其他请求都会被拒绝。

通配符详解

  • 星号(*):可以使用星号代替 0 个或多个字符。如果正在查找以 AEW 开头的一个文件,但不记得文件名其余部分,可以输入 AEW*,查找以 AEW 开头的所有文件类型的文件,如 AEWT.txt、AEWU.EXE、AEWI.dll 等。要缩小范围可以输入AEW*.txt,查找以 AEW 开头并以 .txt 为扩展名的文件,如 AEWIP.txt、AEWDF.txt
  • 问号(?):可以使用问号代替一个字符。例如输入love?查找以 love 开头的一个字符结尾的文件,如 lovey、lovei 等。要缩小范围可以输入 love?.doc,查找以 love 开头的一个字符结尾并以 .doc 为扩展名的文件,如 lovey.doc、loveh.doc

具体设置方法

首先,在OSS管理控制台选择你的Bucket,然后点击该Bucket的权限管理~

其次,找到防盗链选项,点击设置。

Referer一栏里填入你需要调用OSS资源的网址,可以使用通配符*号。

允许空Referer关掉,然后点击保存即可。

赞(0) 打赏
未经允许不得转载:云测速 » 阿里云OSS怎么设置防盗链

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者吧~

微信扫一扫打赏