如何实现网站的防盗链?

news/2024/5/20 23:51:33/文章来源:https://blog.csdn.net/weixin_33894640/article/details/90625527

背景


A是网站站长,在A的网站的网页里有一些图片和音频视频的链接,这些静态资源都保留在阿里云对象存储OSS上。B是另一个网站的站长,B在未经A允许的情况下,偷偷使用A的网站的图片资源,放置在自己网站的网页中,通过这种方法盗取空间和流量。 在这样的情况下,第三方网站用户看到的是B的网站,网站用户不知道也不关心网站里的图片是来自于哪里。 由于OSS是按照使用量来收费的,这样用户A在没有获取任何收益的情况下,反而承担了资源使用费用。A站应该怎么办呢?

本文就是介绍类似A这样的用户将资源存放在OSS上后,如何设置防盗链来避免这样情况的发生。 本文适用那些在网页中使用了OSS资源作为外链的用户。

具体方案


目前OSS提供的防盗链的方法主要有两种:

  • 设置Referer。控制台,SDK都可以操作,适合不想写代码的用户,也适合喜欢开发的用户;
  • 签名URL,适合喜欢开发的用户。 本文会给一个控制台设置Referer防盗链的具体事例,也会基于PHP SDK给一个动态生成签名URL防盗链的示例。

通过Referer防盗链的具体步骤


第一步:进入 OSS 管理控制台界面。

第二步:单击目标存储空间的名称进入存储空间管理页面。

第三步:单击 Bucket 属性 > 防盗链设置

068943851525b0a0ffa6efefb183df0d5a2d3295

第四步:单击“设置”添加白名单网址并设置是否允许其为空。

264aaf0f0503e8f163bef94c7c7d4c5797da15bf

第五步:单击“提交”保存对防盗链的设置。

举例

对于一个名为test-1-001的存储空间,设置其referer 白名单为 http://www.aliyun.com。则只有 referer 为http://www.aliyun.com的请求才能访问oss-example这个存储空间中的对象。


签名URL实现步骤


签名URL的原理和实现方法见OSS开发人员指南授权第三方下载。 签名URL的实现步骤:

1、将Bucket的权限设置为私有读;

2、 根据期望的超时时间(签名URL失效的时间)生成签名。

具体实现

第一步:安装PHP最新代码,参考PHP SDK文档

第二步:实现生成签名URL并将其放在网页中,作为外链使用的简单示例:

 
<?phprequire 'vendor/autoload.php';#最新PHP提供的自动加载
use OSS\OssClient;#表示命名空间的使用
$accessKeyId="a5etodit71tlznjt3pdx7lch";#AccessKeyId,需要使用用户自己的
$accessKeySecret="secret_key";#AccessKeySecret,需要用用户自己的
$endpoint="oss-cn-hangzhou.aliyuncs.com";#Endpoint,根据Bucket创建的区域来选择,本文中是杭州
$bucket = 'referer-test';#Bucket,需要用用户自己的
$ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);$object = "aliyun-logo.png";#需要签名的Object
$timeout = 300;#期望链接失效的时间,这里表示从代码运行到这一行开始的当前时间往后300秒
$signedUrl = $ossClient->signUrl($bucket, $object, $timeout); #签名URL实现的函数$img= $signedUrl;#将签名URL动态放到图片资源中并打印出来
$my_html = "<html>";$my_html .= "<img src=\"".$img. "\" />";$my_html .= "<p>".$img."</p>";$my_html .= "</html>";echo $my_html;?>

第三步:通过浏览器访问 多请求几次会发现签名的URL会变,这是正常的。主要是因为过期时间的改变导致的。这个过期时间是链接失效的时间,是以unix time的形式展示的。 例如:Expires=1448991693,可以将这个时间转换成本地时间。在Linux下的命令为date -d@1448991693,也可以在网络上找工具自行转换。

特别说明

签名URL可以和Referer白名单功能一起使用。

如果签名URL失效的时间限制在分钟内,盗链用户即使伪造了Referer也必须拿到签名的URL,且必须在有效的时间内才能盗链成功。 相比只使用Referer来说,增加了盗链的难度。 也就是说签名URL配合Referer白名单功能,可以增加防盗链的效果。


防盗链总结


基于OSS的防盗链最佳实践点如下:

  • 使用三级域名URL,例如referer-test.oss-cn-hangzhou.aliyuncs.com/aliyun-logo.png,安全性比绑定二级域名更高。三级域名方式能够提供Bucket级别的清洗和隔离,能够应对被盗链后的流量暴涨的情况,也能避免不同Bucket间的互相影响,最终提高业务可用性;
  • 如果使用自定义域名作为连接,CNAME也请绑定到三级域名,规则是bucket + endpoint。假如你的bucket名为test,三级域名则为test.oss-cn-hangzhou.aliyuncs.com;
  • 对Bucket设定尽可能严格的权限类别。例如提供公网服务的Bucket设置为public-read或private,禁止设置为public-read-write。Bucket权限参见访问控制;
  • 对访问来源进行验证,根据需要设置合适的Referer白名单;
  • 如果需要更严格的防盗链方案,请参考签名的URL方案;
  • 记录Bucket访问日志,能够及时发现盗链活动和验证防盗链方案的有效性。 访问日志参见设置访问日志记录。

常见问题及解决方案


问:在OSS控制台设置了防盗链,一直不生效,但页面可以防但是播放器不可以,请问为什么?怎么解决?

答:目前设置防盗链不生效的主要问题集中于视频和音频文件, 在使用诸如windows media player,flash player等播放器后,在请求OSS资源的时候传递的Refer为空,这就造成防盗链的失效, 不仅仅把别人防住了,也把自己给防住了。针对这种情况,可以参考上面提到的签名URL防盗链的方法。

问:Referer是什么?怎样才会带上?如果遇到HTTPS怎么办 不需要添加别的了吗,比如逗号之类的?

答:Referer是HTTP协议中的请求头,在跨页面访问的时候会带上。需要看看浏览器请求的Referer是http://还是https://,一般是http://。

问:如何生成签名URL?AccessKeySecret放在客户端里的安全性?

答:签名URL的方法参见各个SDK文档。AccessKeySecret这种不建议直接放在客户端,RAM提供了STS服务可以解决这个问题。也可以参考RAM和STS指南

问:例如要写a.baidu.com和b.baidu.com,这两个用通配符(*,?) 如何写?

答:可以写成http://*.baidu.com,对于这种单字符的也可以写成http://?.baidu.com

问:*.domain.com 可以匹配二级域名,但无法匹配 domain.com 另外添加一行 domain.com 也没效果,如何配置?

答:注意一般的referer中会带http这样的参数,可以通过chrome的开发者模式观察下请求的Referer是什么,然后再具体设置。这里可能是忘了写http://,应该为http://domain.com

问:如果防盗链没有生效怎么办?

推荐使用chrome来查看。打开开发者模式,点击网页,查看HTTP请求中的Referer具体值是什么,对应在OSS中设置的Referer,是否能匹配上。如果还是解决不了,提工单。


相关链接

关于本文的更多细节:https://help.aliyun.com/document_detail/31937.html

防盗链设置:https://help.aliyun.com/document_detail/31901.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_749434.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

生成结合图表_闭着眼也能做出高颜值的Excel图表,你只需这3个网站

今天的推文比较简单&#xff0c;为大家分享3个可以在线制作图表的宝藏网站。欢迎大家在看完之后&#xff0c;在留言区选出你心中觉得最实用的网站&#xff0c;或者跟大家分享你觉得更好用的网站。01. 图表秀全能又方便的在线图表制作神器https://www.tubiaoxiu.com/一款在线图表…

网站服务架构(转)

服务器划分 对于访问量大的网站而言&#xff0c;将网站的各个部分拆分分别部署到不同服务器上是很有必要的。例如将图片和web站点分开。一般而言&#xff0c;在网站的整个服务器部署上分为如下几种类型&#xff1a; 文件服务器&#xff1a;一般存储系统的相关图片和文件&#x…

赣州SEO优化市场最新分析-魏子龙博客

【魏子龙博客导读】赣州市是江西的第二大城市&#xff0c;赣州市所辖2区1市15县。赣州市主要的企业集中在沙河工业园、黄金开发区。企业类型主要包括机械制造、旅游、地产、稀土、脐橙、餐饮等。现在我对以上各行业做个赣州SEO优化市场分析。1.制造&#xff1a;赣州制造主要有电…

mysql springmvc 源码_spring MVC+easyUI+mybatis开发网站后台管理系统源代码下载

urls.properties中需要修改为你本地的静态文件的访问路径。转载js是封装好的大家可以讨论一下使用Java平台,采用SpringMVCMybatis等主流框架数据库:使用免费MYSQL前端:使用Jquery和Easyui技术.界面清晰简洁,易操作权限:对菜单,按钮控制.仅展示有权限的菜单和按钮.拦截:对所有无…

金昌搜索引擎优化网络推广_在网络推广外包中企业网站排名优化在网络推广外包中如何实现?...

随着互联网市场中企业网站数量的增加&#xff0c;网站优化人才的需要与日俱增&#xff0c;据资料显示&#xff0c;与国内当下亿万网民相比&#xff0c;我国目前仅有不足100万家企业从事网络营销&#xff0c;对于网络营销人才的需求也是巨大&#xff0c;未来几年将产生数以百万计…

nginx 隐藏目录_提升网站安全性-隐藏nginx信息

一般使用nginx的web网站&#xff0c;访问网站时&#xff0c;可以从请求头中看到使用了nginx以及nginx的版本号。暴露这些信息将给网站带来一定的风险&#xff0c;因此安装nginx时最好把这些信息隐藏。隐藏nginx 版本号与WEB服务器信息如果未安装nginx&#xff0c;先去官网下载压…

【转载】国内网站博客数据统计选免费Google Analytics还是百度统计

【转载】国内网站博客数据统计选免费Google Analytics还是百度统计 Google Analytics谷歌统计是我用的第一个网站统计工具&#xff0c;当然现在也一直在用。Google Analytics凭借其强大的功能和超强的稳定性、快速的反应能力、广泛的数据应用功能&#xff0c;受到了广大站长的追…

amp部署php网站,LAMP搭建以及企业网站搭建

linux中的LAMP的部署以及企业网站的搭建1.先卸载以rpm方式安装的php以及依赖包2.插入linux的系统盘并安装zlib-devel和libmxl2-devel3.在挂载libmcrypt光盘&#xff0c;并安装和配置 (make && make install)4.执行优化5.安装mhash软件 并配置和安装(make && ma…

关键词分词工具_关键词在SEO推广中的重要作用

点击标题下「蓝色微信名」可快速关注什么是关键词?用户通过在搜索引擎搜索框中输入想要查询的字&#xff0c;发起搜索行为&#xff0c;找到自己需要的信息。输入在搜索框中的字被称为关键词。关键词是网站优化中的方向&#xff0c;是第一步需要做的工作。网站优化是通过提升网…

django 设置媒体url_Django网站搭建系列(三)——视图

我们在前两期分别讲了Django项目创建&#xff1a;《Django网站搭建系列(一)——项目创建》和数据库设置&#xff1a;《Django网站搭建系列(二)——数据库设置与模型设计》&#xff0c;并且我们创建了博客的第一个模型&#xff1a;博文模型。在前两个章节里&#xff0c;我们已经…

PHPWAMP内置IIS管理器一键搭建PHP网站,支持无限个不同PHP版本同时运行

PHPWAMP内置功能强大的IIS站点管理&#xff0c;可同时运行多个PHP版本&#xff0c;站点管理可自定义添加PHP版本支持Apache、Nginx、IIS多功能站点管理&#xff0c;后期我会在业余时间开发出更多实用功能&#xff0c;敬请关注。使用方式&#xff1a;点击相关设置&#xff0c;直…

anguler 画面布局适应屏幕大小_自适应与响应式网站建设

网站建设是对于一个新手来讲是一件繁琐累人的事情&#xff0c;首先你要考虑自己的网站用途是什么&#xff1f;如果自己做建设&#xff0c;你需要的知识是很多的&#xff0c;如C、java、php、dreamweaver、photoshop、firework等等&#xff0c;一个网站不单单做出来&#xff0c;…

一个牛X的网站——中國哲學書電子化計劃

2019独角兽企业重金招聘Python工程师标准>>> 找《大明会典》时无意间发现的&#xff1a; 中國哲學書電子化計劃 网址&#xff1a;http://ctext.org/zhs 光看目录就激动的不行。。。 转载于:https://my.oschina.net/u/2399303/blog/902643

企业新建网站,为什么在搜索引擎上找不到?

这个问题可以很明确的回答一下&#xff1a;新建的网站&#xff0c;你不一定就可以在各大搜索引擎上找到&#xff01;主要的原因如下&#xff1a;1、你的网站未被搜索引擎收录&#xff0c;不是任何网站都被搜索引擎收录的。2、即便收录啦&#xff0c;由于你对网站标题的设置&…

jstl处理栏目与子栏目_seo技术:大部分人遗漏的栏目页优化,你是否也忽视了?...

我们在做网站优化排名的时候发现&#xff0c;网站关键词排名一直上不来&#xff0c;而且关键词库是很少的&#xff0c;除了我们设置好的首页TKD以外&#xff0c;其它栏目页就没有好好的运用&#xff0c;我们可以看看大部分的企业网站&#xff0c;他们的栏目页大部分就是一些留言…

首页面太大怎么样快速加载_SEO团队_网站如何优化至百度首页

网站怎样优化才能快速进入搜索引擎的首页呢&#xff1f;平时我们所说的seo优化就是指企业网站的seo优化&#xff0c;使得网站的关键字能够有一个比较前的排名&#xff0c;甚至出现在搜索引擎的首页&#xff0c;这样网站的点击率以及流量都上升&#xff0c;给网站带来更大的利益…

怎么适应多种数据库_石河子商城网站制作怎么选

石河子商城网站制作怎么选&#xff0c;专业的技术团队&#xff0c;丰富的互联网运营成功经验&#xff0c;卓越的创作思维&#xff0c;为您创作出一流的品牌互联网形象。石河子商城网站制作怎么选&#xff0c; 十、国家对适龄儿童注射疫苗及预防接种方面有何规定&#xff1f;根据…

阿根廷绝杀尼日尼亚给我们互联网建站者带来什么启示?

2019独角兽企业重金招聘Python工程师标准>>> 今天凌晨两点钟&#xff0c;作为世界杯球迷的我也观看了阿根廷对战尼日尼亚的足球赛事&#xff0c;而一开场不久&#xff0c;梅西就凭借着自己超凡的球技破门&#xff0c;这是梅西在2018年俄罗斯奥运会上第一次成功射门&…

如何做好企业网站专题页建设及营销推广优化方案成都SEO_成都辰星建站

为什么80%的码农都做不了架构师&#xff1f;>>> 成都SEO企业网站专题页建设及企业网站营销推广优化分析及对应处理方案,企业网站除去网站基础优化以外网站专题网页制作也是一种提升网站流量关键词排名提升的方案方法之一特别是对于产品商城网站和资讯类网站做好专题…

详细分析:当我们用浏览器访问一个网站到页面展示,背后经历了什么?

文章目录一、前提概要1、网络分层模型2、什么是IP地址&#xff1f;3、什么是域名&#xff1f;4、什么是DNS二、漫漫取经之路就在脚下1、域名解析2、建立TCP连接&#xff08;三次握手&#xff09;3、获取资源4、浏览器解释当我们用浏览器访问一个网站到页面显示出来&#xff0c;…