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 面向对象的 私有成员和公开成员
May 13 Javascript
ASP.NET jQuery 实例2 (表单中使用回车在TextBox之间向下移动)
Jan 13 Javascript
浅析document.createDocumentFragment()与js效率
Jul 08 Javascript
jQuery下拉美化搜索表单效果代码分享
Aug 25 Javascript
微信小程序 radio单选框组件详解及实例代码
Jan 10 Javascript
基于jQuery中ajax的相关方法汇总(必看篇)
Nov 08 jQuery
5分钟学会Vue动画效果(小结)
Jul 21 Javascript
JS开发自己的类库实例分析
Aug 28 Javascript
JavaScript实现Tab标签页切换的最简便方式(4种)
Jun 28 Javascript
jQuery加PHP实现图片上传并提交的示例代码
Jul 16 jQuery
Angular处理未可知异常错误的方法详解
Jan 17 Javascript
Vue仿Bibibili首页的问题
Jan 21 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
《PHP边学边教》(01.开篇――准备工作)
2006/12/13 PHP
解析php dirname()与__FILE__常量的应用
2013/06/24 PHP
浅谈PHP中Stream(流)
2015/06/08 PHP
PHP实现的蚂蚁爬杆路径算法代码
2015/12/03 PHP
PHP自定义函数获取URL中一级域名的方法
2016/08/23 PHP
php注册审核重点解析(数据访问)
2017/05/23 PHP
PHP实现的mysql主从数据库状态检测功能示例
2017/07/20 PHP
js 图片等比例缩放代码
2010/05/13 Javascript
js单向链表的具体实现实例
2013/06/21 Javascript
js 实现菜单左右滚动显示示例介绍
2013/11/21 Javascript
js中top的作用深入剖析
2014/03/04 Javascript
jquery实现文本框数量加减功能的例子分享
2014/05/10 Javascript
js实现键盘控制DIV移动的方法
2015/01/10 Javascript
JavaScript类型系统之正则表达式
2016/01/05 Javascript
Bootstrap表单布局
2016/07/19 Javascript
JS绘制微信小程序画布时钟
2016/12/24 Javascript
JavaScript中最常用的10种代码简写技巧总结
2017/06/28 Javascript
bootstrap table实现双击可编辑、添加、删除行功能
2017/09/27 Javascript
vue 表单输入格式化中文输入法异常问题
2018/05/30 Javascript
微信小程序如何获取用户收货地址
2018/11/27 Javascript
JS如何实现手机端输入验证码效果
2020/05/13 Javascript
基于ajax及jQuery实现局部刷新过程解析
2020/09/12 jQuery
python Pygame的具体使用讲解
2017/11/03 Python
django模板语法学习之include示例详解
2017/12/17 Python
python调用百度地图WEB服务API获取地点对应坐标值
2019/01/16 Python
解决PyCharm不运行脚本,而是运行单元测试的问题
2019/01/17 Python
Python for循环及基础用法详解
2019/11/08 Python
python dataframe NaN处理方式
2019/12/26 Python
python 列表推导和生成器表达式的使用
2021/02/01 Python
德购商城:德国进口直邮商城
2017/06/13 全球购物
什么是测试驱动开发(TDD)
2012/02/15 面试题
生物制药专业自我鉴定
2014/02/19 职场文书
幼儿园父亲节活动总结
2015/02/12 职场文书
2015年感恩母亲节活动方案
2015/05/04 职场文书
go web 预防跨站脚本的实现方式
2021/06/11 Golang
利用Python实现Picgo图床工具
2021/11/23 Python