JavaScript 防盗链的原理以及破解方法


Posted in Javascript onDecember 29, 2020

HTTP Referer是header的一部分, 当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的,服务器藉此可以获得一些信息用于处理。通过该头域的值,我们可以检测到访问目标资源的源地址

背景

前段日子 在自学做项目的时候发现 明明在项目中引用了线上存在的图片 但是在自己的项目中却怎么也显示出来

查阅资料后发现是这些第三方网站设置了防盗链

破解防盗链

先说说防盗链的原理,http 协议中,如果从一个网页跳到另一个网页,http 头字段里面会带个 Referer。

这里的Referer是由于历史原因导致了拼写错误 后来也就一直沿用。

图片服务器通过检测 Referer 是否来自规定域名,来进行防盗链。

如果盗用网站是 https 的 protocol,而图片链接是 http 的话,

则从 https 向 http 发起的请求会因为安全性的规定,而不带 referer,从而实现防盗链的绕过。

官方输出图片的时候,判断了来源(Referer),就是从哪个网站访问这个图片,

如果是你的网站去加载这个图片,那么Referer就是:你的网站地址;

你网站地址,肯定没在官方的白名单内,所以就看不到图片了。

因此,若不发送Referer,也就是没有来源。那么官方那边,就认为是从浏览器直接访问的,所以就能加载正常的图片了。

<meta name="referrer" content="never">

比如在掘金上 查看我的一篇文章中一张图片的Request Headers 就可以看到Referer

JavaScript 防盗链的原理以及破解方法

以上就是JavaScript 防盗链的原理以及破解方法的详细内容,更多关于JavaScript 防盗链的资料请关注三水点靠木其它相关文章!

Javascript 相关文章推荐
phpwind放自动注册方法
Dec 02 Javascript
javascript中String类的subString()方法和slice()方法
May 24 Javascript
onkeydown事件解决按回车键直接提交数据的需求
Apr 11 Javascript
javascript的document.referrer浏览器支持、失效情况总结
Jul 18 Javascript
Javascript生成带参数的二维码示例
Oct 10 Javascript
angular动态删除ng-repaeat添加的dom节点的方法
Jul 20 Javascript
使用mint-ui开发项目的一些心得(分享)
Sep 07 Javascript
React中使用UEditor百度富文本的方法
Aug 22 Javascript
webpack之引入图片的实现及问题
Oct 08 Javascript
详解基于Vue/React项目的移动端适配方案
Aug 23 Javascript
小程序如何支持使用 async/await详解
Sep 12 Javascript
el-table表头根据内容自适应完美解决表头错位和固定列错位
Jan 07 Javascript
vue3+typeScript穿梭框的实现示例
Dec 29 #Vue.js
Vue.extend 登录注册模态框的实现
Dec 29 #Vue.js
vue实现简易的双向数据绑定
Dec 29 #Vue.js
elementui实现预览图片组件二次封装
Dec 29 #Javascript
利用node.js开发cli的完整步骤
Dec 29 #Javascript
微信小程序实现可拖动悬浮图标(包括按钮角标的实现)
Dec 29 #Javascript
vue中配置scss全局变量的步骤
Dec 28 #Vue.js
You might like
discuz安全提问算法
2007/06/06 PHP
php set_magic_quotes_runtime() 函数过时解决方法
2010/07/08 PHP
php数组函数序列之asort() - 对数组的元素值进行升序排序,保持索引关系
2011/11/02 PHP
PHP中余数、取余的妙用
2015/06/29 PHP
PHP基于openssl实现的非对称加密操作示例
2019/01/11 PHP
PHP+百度AI OCR文字识别实现了图片的文字识别功能
2019/05/08 PHP
javascript setAttribute, getAttribute 在不同浏览器上的不同表现
2010/08/05 Javascript
简短几句 通俗解释javascript的闭包
2011/01/17 Javascript
JS中判断null、undefined与NaN的方法
2014/03/24 Javascript
jQuery实现单击按钮遮罩弹出对话框(仿天猫的删除对话框)
2014/04/10 Javascript
JavaScript中数组成员的添加、删除介绍
2014/12/30 Javascript
JS实现状态栏跑马灯文字效果代码
2015/10/24 Javascript
浅谈javascript中关于日期和时间的基础知识
2016/07/13 Javascript
利用js获取下拉框中所选的值
2016/12/01 Javascript
详解Javascript中DOM的范围
2017/02/13 Javascript
关于react-router的几种配置方式详解
2017/07/24 Javascript
webpack 2的react开发配置实例代码
2017/07/28 Javascript
JS设计模式之数据访问对象模式的实例讲解
2017/09/30 Javascript
JavaScript设计模式之观察者模式与发布订阅模式详解
2020/05/07 Javascript
vue Treeselect 树形下拉框:获取选中节点的ids和lables操作
2020/08/15 Javascript
[06:45]DOTA2卡尔工作室 英雄介绍幻影长矛手篇
2013/07/12 DOTA
[01:10]DOTA2亚洲邀请赛 征战号角响彻全场
2015/01/06 DOTA
Python之os操作方法(详解)
2017/06/15 Python
Python中的错误和异常处理简单操作示例【try-except用法】
2017/07/25 Python
Python函数中参数是传递值还是引用详解
2019/07/02 Python
用sleep间隔进行python反爬虫的实例讲解
2020/11/30 Python
Python爬虫之Selenium实现窗口截图
2020/12/04 Python
matplotlib更改窗口图标的方法示例
2021/02/03 Python
优秀高中生事迹材料
2014/02/11 职场文书
模具专业毕业生自荐书范文
2014/02/19 职场文书
高速铁道技术专业求职信
2014/08/09 职场文书
高中生自我评价范文2015
2015/03/03 职场文书
银行招聘自荐信
2015/03/06 职场文书
30岁前绝不能错过的10本书
2019/08/08 职场文书
那些美到让人窒息的诗句,值得你收藏!
2019/08/20 职场文书
Maven学习----Maven安装与环境变量配置教程
2021/06/29 Java/Android