背景
A是网站站长,在A的网站的网页里有一些图片和音频视频的链接,这些静态资源都保存在阿里云对象存储OSS上。以图片为例子,A在OSS上存放的URL为http://referer-test.oss-cn-hangzhou.aliyuncs.com/aliyun-logo.png
。OSS资源外链地址见OSS 地址,这样的URL(不带签名)要求用户的Bucket权限为公开读权限。
B是另一个网站的站长,B在未经A允许的情况下,偷偷使用A的网站的图片资源,放置在自己网站的网页中,通过这种方法盗取空间和流量。在这样的情况下,第三方网站用户看到的是B的网站,网站用户不知道也不关心网站里的图片是来自于哪里。由于OSS是按照使用量来收费的,这样用户A在没有获取任何收益的情况下,反而承担了资源使用费用。
本文就是介绍类似A这样的用户将资源存放在OSS上后,如何设置防盗链来避免这样情况的发生。本文适用那些在网页中使用了OSS资源作为外链的用户。
实现方法
目前OSS提供的防盗链的实现方法主要有两种:
- 设置Referer。控制台、SDK都可以操作,适合不想写代码的用户,也适合喜欢开发的用户。
- 签名URL,适合喜欢开发的用户。
本文会给一个控制台设置Referer防盗链的具体事例,也会基于PHP SDK给一个动态生成签名URL防盗链的示例。
详情参考:https://help.aliyun.com/document_detail/31937.html?spm=5176.100239.blogcont59499.10.Q4JI2I