searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

ZOS对象存储防盗链的流程分析和使用

2023-01-13 09:55:54
39
0

盗链时常发生于我们平时浏览的网页上,有些网站利用爬虫技术,每天爬取大量其他网站文章或者图片等资源,并直接在自己的网页中引用这些原网站上的资源,非法盗用了资源拥有者的流量,而这些请求流量都会由资源拥有者买单。

具体来讲,盗链其实就是恶意程序使用资源URL盗刷公网流量或使用恶意手法盗用资源,给用户带来不必要的损失。你可能遇到过这样的场景:有B和C两个网站,网站C的管理员为了降低成本,不想去购买相关的存储资源,直接将网站B上的图片的链接复制到网站C的网页中,偷偷使用了网站B的图片资源,通过这种方法盗取空间和流量。而网站B的页面上有图片和音视频等静态资源的链接,这些静态资源都是保存在对象存储上的,由于对象存储是按需收费的,所以网站B在没有得到额外收益的情况下却要承担网站C访问而带来的资源使用费用,这就是盗链,如下图所示:

Referer是HTTP Header的一部分,当从一个网页点击链接跳转到另一个网站的时候,浏览器会向跳转的目标网站的服务器发送请求,这个请求一般就会带上Referer,而这个Referer的值恰好就是上一个页面的URL。ZOS正是基于这一特性为用户实现了防盗链功能。

假设你有一个网站www.example.com,其包含指向存储在你的ZOS存储桶中的照片和视频的链接。默认情况下,所有ZOS S3 资源都是私有的,因此只有创建资源的ZOS账户可以访问它们,要允许从您的网站读取这些对象,您可以添加一个存储桶策略,限制合法请求必须来则特定网页,ZOS后端基于存储桶策略实现防盗链功能。

ZOS支持基于HTTP header中表头字段Referer的防盗链方法,且同时支持访问白名单和黑名单的设置。通过 aws:Referer 这个http header,保护客户的存储资源(例如存储在 ZOS bucket 中的内容)不被未经授权的第三方站点引用。

用户可以通过天翼云控制台对指定bucket进行防盗链设置,在天翼云控制台点击bucket详情页,选择权限管理,进行防盗链设置。ZOS支持设置白名单和黑名单,允许来自白名单中的域名、ip等访问ZOS特定bucket资源池,禁止来自黑名单中的域名、ip访问。 同时ZOS提供各种语言的SDK调用接口,方便用户自如的为自己的业务资源设置防盗链等策略。以Python为例,用户可以通过put_bucket_policy接口为bucket设置桶策略,在桶策略中指定防盗链:

# 设置bucket policy

with open('policy.json', 'r') as f:

    json_format = json.load(f)

    json = json.dumps(json_format)

zoss3.put_bucket_policy('my-bucket', json)

上述的policy.json即详细的桶配置策略,用户可以通过天翼云官网文档中心-存储-对象存储(原生型)I型-文档下载来获取详细开发者文档。

天翼云赋能千行百业,ZOS对象存储欢迎您的使用。

0条评论
0 / 1000