使用场景
一些不良网站为了扩充内容,不惜盗用其他网站的链接,以降低成本。这种行为不仅损害了原网站的合法利益,还加重了服务器的负担。为了解决这一问题,防盗链的技术应运而生。
在HTTP协议中,网站可以通过表头字段"Referer"来检测目标网页访问的来源网页。通过跟踪来源,网站可以采取技术手段进行处理,一旦检测到来源不是本站会进行阻止。防盗链是利用"Referer"设置,去检测请求来源的"Referer"字段信息是否与白名单或黑名单匹配。若与白名单匹配成功,则允许请求访问。否则阻止请求访问。
为了防止其他人在未授权的情况下盗用ZOS的数据,ZOS提供了一种基于HTTP请求头中referer字段的防盗链方法,支持访问白名单和访问黑名单的设置。
Referer规则
- Referer可以设置多个,多个Referer换行隔开。
- HTTP请求头中的Referer参数用于指定发出请求的资源的URL。该参数可以包含通配符(*)和问号(?),通配符可以代替0个或多个字符,而问号可以代替单个字符。
- 下载文件时,如果Referer头域包含http或https,则必须将Referer设置包含http或https。
- 空Referer表示HTTP或HTTPS请求中,不带Referer字段或Referer字段为空。如果不允许空Referer,则只有HTTP或HTTPS header中包含Referer字段的请求才能访问ZOS资源。
- 白名单Referer为空,黑名单Referer不空时,允许所有黑名单中指定网站以外的其他网站的请求访问目标桶中的数据。若对象是私有,黑名单中指定网站以外的其他网站的请求访问时需校验AKSK,有权限的账号才能访问;若对象是公共读,则不校验AKSK权限。
- 白名单Referer不为空,黑名单Referer为空或不空时,允许在白名单且不在黑名单中的网站的请求访问目标桶中的数据。当请求来源是白名单referer,不管对象是私有还是公共读,无需校验AKSK就能访问。
- 同时配置白名单和黑名单,当白名单Referer与黑名单Referer内容有交集时,交集部分Referer被禁止。当请求是白名单中非交集的部分,不管对象是私有还是公共读,无需校验AKSK权限就能访问。
- 黑名单Referer与白名单Referer都为空时,默认允许所有网站的请求访问目标桶中的数据。若对象是私有,需校验AKSK,有权限的账号才能访问;若对象是公共读,则不校验AKSK权限。
使用方式
使用方式 | 参考文档 |
---|---|
控制台 | 详情请参见防盗链。 |
SDK | ZOS支持多种SDK,关于SDK的代码示例请参见开发者文档。 |