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 相关文章推荐
深入理解JavaScript系列(9) 根本没有“JSON对象”这回事!
Jan 15 Javascript
Jquery中的层次选择器与find()的区别示例介绍
Feb 20 Javascript
JS逆序遍历实现代码
Dec 02 Javascript
javascript中Array数组的迭代方法实例分析
Feb 04 Javascript
Javascript闭包(Closure)详解
May 05 Javascript
jQuery针对input的class属性写了多个值情况下的选择方法
Jun 03 Javascript
ES6学习教程之块级作用域详解
Oct 09 Javascript
Vue调试神器vue-devtools安装方法
Dec 12 Javascript
微信小程序实现人脸识别
May 25 Javascript
Vue项目中配置pug解析支持
May 10 Javascript
前端Electron新手入门教程详解
Jun 21 Javascript
JavaScript中this函数使用实例解析
Feb 21 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
php网页后退不再出现过期
2007/03/08 PHP
php实现的在线人员函数库
2008/04/09 PHP
解析PHP对现有搜索引擎的调用
2013/06/25 PHP
php单例模式示例分享
2015/02/12 PHP
PHP使用new StdClass()创建空对象的方法分析
2017/06/06 PHP
PHP操作Redis常用技巧总结
2018/04/24 PHP
JavaScript对象和字串之间的转换实例探讨
2013/04/21 Javascript
js实现动态改变字体大小代码
2014/01/02 Javascript
利用原生JavaScript获取元素样式只是获取而已
2014/10/08 Javascript
AngularJS表单详解及示例代码
2016/08/17 Javascript
需要牢记的JavaScript基础知识
2016/09/25 Javascript
详解AngularJS1.x学习directive 中‘&amp; ’‘=’ ‘@’符号的区别使用
2017/08/23 Javascript
JS中的回调函数实例浅析
2018/03/21 Javascript
使用VUE+iView+.Net Core上传图片的方法示例
2019/01/04 Javascript
node.js中ws模块创建服务端和客户端,网页WebSocket客户端
2019/03/06 Javascript
JS数组方法reverse()用法实例分析
2020/01/18 Javascript
js 解析 JSON 数据简单示例
2020/04/21 Javascript
JS判断数组是否包含某元素实现方法汇总
2020/06/24 Javascript
vue实现整屏滚动切换
2020/06/29 Javascript
jQuery实现简单飞机大战
2020/07/05 jQuery
Python的迭代器和生成器使用实例
2015/01/14 Python
Python实现数据库并行读取和写入实例
2017/06/09 Python
Python实现操纵控制windows注册表的方法分析
2019/05/24 Python
python time.sleep()是睡眠线程还是进程
2019/07/09 Python
Django 返回json数据的实现示例
2020/03/05 Python
html5记忆翻牌游戏实现思路及代码
2013/07/25 HTML / CSS
Skyscanner波兰:廉价航班
2017/11/07 全球购物
Rowdy Gentleman服装和配饰:美好时光
2019/09/24 全球购物
酷瑞网络科技面试题
2012/03/30 面试题
打架检讨书2000字
2014/02/22 职场文书
学习雷锋精神演讲稿
2014/05/10 职场文书
品牌转让协议书
2014/08/20 职场文书
安全保证书
2015/01/16 职场文书
教师创先争优承诺书
2015/04/27 职场文书
同意转租证明
2015/06/24 职场文书
使用Django框架创建项目
2022/06/10 Python