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 EasyUI NumberBox(数字框)的用法
Jul 08 Javascript
jquery之超简单的div显示和隐藏特效demo(分享)
Jul 09 Javascript
删除select中所有option选项jquery代码
Aug 12 Javascript
jquery获取复选框被选中的值
Mar 22 Javascript
仿百度联盟对联广告实现代码
Aug 30 Javascript
告诉你什么是javascript的回调函数
Sep 04 Javascript
JS的数组迭代方法
Feb 05 Javascript
JS清除文本框内容离开在恢复及鼠标离开文本框时触发js的方法
Jan 12 Javascript
AngularJS 基础ng-class-even指令用法
Aug 01 Javascript
angular 未登录状态拦截路由跳转的方法
Oct 09 Javascript
react写一个select组件的实现代码
Apr 03 Javascript
vue自定义插件封装,实现简易的elementUi的Message和MessageBox的示例
Nov 20 Vue.js
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
一个简单实现多条件查询的例子
2006/10/09 PHP
PHP去掉从word直接粘贴过来的没有用格式的函数
2012/10/29 PHP
PHP读取数据库并按照中文名称进行排序实现代码
2013/01/29 PHP
php使用异或实现的加密解密实例
2013/09/04 PHP
PHP中比较时间大小实例
2014/08/21 PHP
Javascript 函数中的参数使用分析
2010/03/27 Javascript
分别用marquee和div+js实现首尾相连循环滚动效果,仅3行代码
2011/09/21 Javascript
JS画5角星方法介绍
2013/09/17 Javascript
判断浏览器的内核及版本号方法汇总
2015/01/05 Javascript
javascript查询字符串参数的方法
2015/01/28 Javascript
node.js+express制作网页计算器
2016/01/17 Javascript
分享10个优化代码的CSS和JavaScript工具
2016/05/11 Javascript
JavaScript基于Dom操作实现查找、修改HTML元素的内容及属性的方法
2017/01/20 Javascript
移动端web滚动分页的实现方法
2017/05/05 Javascript
JS库 Highlightjs 添加代码行号的实现代码
2017/09/13 Javascript
Vue-Router的使用方法
2018/09/05 Javascript
对angularJs中controller控制器scope父子集作用域的实例讲解
2018/10/08 Javascript
详解Vue-cli3.X使用px2rem遇到的问题
2019/08/09 Javascript
vue移动端弹起蒙层滑动禁止底部滑动操作
2020/07/22 Javascript
vue 项目引入echarts 添加点击事件操作
2020/09/09 Javascript
Python多进程写入同一文件的方法
2019/01/14 Python
解决Python3 抓取微信账单信息问题
2019/07/19 Python
python logging通过json文件配置的步骤
2020/04/27 Python
Selenium元素定位的30种方式(史上最全)
2020/05/11 Python
初学者学习Python好还是Java好
2020/05/26 Python
python开发入门——set的使用
2020/09/03 Python
简洁自适应404页面HTML好看的404源码
2020/12/16 HTML / CSS
丹尼尔惠灵顿手表天猫官方旗舰店:Daniel Wellington
2017/08/25 全球购物
英国领先的高级美容和在线皮肤诊所:Face the Future
2020/06/17 全球购物
如何唤起类中的一个方法
2013/11/29 面试题
迟到早退检讨书
2014/02/10 职场文书
生产部厂长职位说明书
2014/03/03 职场文书
新学期国旗下演讲稿
2014/05/08 职场文书
2014年四风问题自我剖析材料
2014/09/15 职场文书
2014年老干部工作总结
2014/11/21 职场文书
2015年乡镇残联工作总结
2015/05/13 职场文书