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 相关文章推荐
基于jquery的direction图片渐变动画效果
May 24 Javascript
基于jquery的使ListNav兼容中文首字拼音排序的实现代码
Jul 10 Javascript
Checbox的操作含已选、未选及判断代码
Nov 07 Javascript
javascript的push使用指南
Dec 05 Javascript
JS简单限制textarea内输入字符数量的方法
Oct 14 Javascript
使用jQuery.form.js/springmvc框架实现文件上传功能
May 12 Javascript
轻松掌握JavaScript策略模式
Aug 25 Javascript
微信js-sdk预览图片接口及从拍照或手机相册中选图接口用法示例
Oct 13 Javascript
Java中int与integer的区别(基本数据类型与引用数据类型)
Feb 19 Javascript
使用ionic(选项卡栏tab) icon(图标) ionic上拉菜单(ActionSheet) 实现通讯录界面切换实例代码
Oct 20 Javascript
微信小程序仿抖音视频之整屏上下切换功能的实现代码
May 24 Javascript
vue如何在项目中调用腾讯云的滑动验证码
Jul 15 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
PHP5中实现多态的两种方法实例分享
2014/04/21 PHP
Prototype RegExp对象 学习
2009/07/19 Javascript
js拖拽一些常见的思路方法整理
2014/03/19 Javascript
jQuery中$.get、$.post、$.getJSON和$.ajax的用法详解
2014/11/19 Javascript
实例详解JavaScript获取链接参数的方法
2016/01/01 Javascript
javascript学习指南之回调问题
2016/04/23 Javascript
深入浅析knockout源码分析之订阅
2016/07/12 Javascript
深入理解React中es6创建组件this的方法
2016/08/29 Javascript
D3.js实现文本的换行详解
2016/10/14 Javascript
js实现简易垂直滚动条
2017/02/22 Javascript
基于对象合并功能的实现示例
2017/10/10 Javascript
JavaScript实现省市联动过程中bug的解决方法
2017/12/04 Javascript
Vue下的国际化处理方法
2017/12/18 Javascript
Webpack 之 babel-loader文件预处理器详解
2018/03/23 Javascript
bootstrap 弹出框modal添加垂直方向滚轴效果
2018/07/09 Javascript
vue+elementUi 实现密码显示/隐藏+小图标变化功能
2020/01/18 Javascript
Vue实现剪切板图片压缩功能
2020/02/04 Javascript
node.js 使用 net 模块模拟 websocket 握手进行数据传递操作示例
2020/02/11 Javascript
antd vue table跨行合并单元格,并且自定义内容实例
2020/10/28 Javascript
[06:43]2018DOTA2国际邀请赛寻真——VGJ.Thunder
2018/08/11 DOTA
[01:14:31]Secret vs VG 2018国际邀请赛淘汰赛BO3 第一场 8.23
2018/08/24 DOTA
[41:13]完美世界DOTA2联赛PWL S2 Forest vs Rebirth 第一场 11.20
2020/11/20 DOTA
Python中threading模块join函数用法实例分析
2015/06/04 Python
Python+matplotlib+numpy实现在不同平面的二维条形图
2018/01/02 Python
Django之路由层的实现
2019/09/09 Python
Python机器学习工具scikit-learn的使用笔记
2021/01/28 Python
css3实现3D文本悬停改变效果的示例代码
2019/01/16 HTML / CSS
用HTML5.0制作网页的教程
2010/05/30 HTML / CSS
Camper鞋西班牙官方网上商店:西班牙马略卡岛的鞋类品牌
2019/03/14 全球购物
德国自然时尚和有机产品购物网站:Waschbär
2019/05/29 全球购物
世界上最大的冷却器制造商:Igloo Coolers
2019/07/23 全球购物
高中生国庆节演讲稿范文2014
2014/09/21 职场文书
赡养老人协议书范本
2015/08/06 职场文书
婚宴祝酒词大全
2015/08/10 职场文书
导游词之舟山普陀山
2019/11/06 职场文书
MySQL分区表实现按月份归类
2021/11/01 MySQL