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 相关文章推荐
表单内同名元素的控制
Nov 22 Javascript
Javascript根据指定下标或对象删除数组元素
Dec 21 Javascript
jquery对table中各数据的增加、保存、删除操作示例
May 14 Javascript
原生js结合html5制作简易的双色子游戏
Mar 30 Javascript
Windows下用PyCharm和Visual Studio开始Python编程
Oct 26 Javascript
原生js实现回复评论功能
Jan 18 Javascript
JavaScript实现图片拖曳效果
Sep 08 Javascript
vue动画之点击按钮往上渐渐显示出来的实例
Sep 29 Javascript
Vue slot用法(小结)
Oct 22 Javascript
mockjs+vue页面直接展示数据的方法
Dec 19 Javascript
JS forEach跳出循环2种实现方法
Jun 24 Javascript
解决VantUI popup 弹窗不弹出或无蒙层的问题
Nov 03 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 数组的指针操作实现代码
2011/02/08 PHP
PHP将DateTime对象转化为友好时间显示的实现代码
2011/09/20 PHP
php版微信公众账号第三方管理工具开发简明教程
2016/09/23 PHP
PHP基础之输出缓冲区基本概念、原理分析
2019/06/19 PHP
十个优秀的Ajax/Javascript实例网站收集
2010/03/31 Javascript
引用 js在IE与FF之间的区别详细解析
2013/11/20 Javascript
教你在heroku云平台上部署Node.js应用
2014/07/30 Javascript
详解JavaScript基于面向对象之继承
2015/12/13 Javascript
一步步教大家编写酷炫的导航栏js+css实现
2016/03/14 Javascript
详解在vue-cli项目中安装node-sass
2017/06/21 Javascript
vue读取本地的excel文件并显示在网页上方法示例
2019/05/29 Javascript
微信小程序嵌入腾讯视频源过程详解
2019/08/08 Javascript
ElementUI radio组件选中小改造
2019/08/12 Javascript
小程序如何支持使用 async/await详解
2019/09/12 Javascript
Python爬虫框架Scrapy安装使用步骤
2014/04/01 Python
基于进程内通讯的python聊天室实现方法
2015/06/28 Python
Python3 加密(hashlib和hmac)模块的实现
2017/11/23 Python
解决Mac安装scrapy失败的问题
2018/06/13 Python
python获取服务器响应cookie的实例
2018/12/28 Python
对python中的装包与解包实例详解
2019/08/24 Python
使用OpenCV实现仿射变换—缩放功能
2019/08/29 Python
用Python生成HTML表格的方法示例
2020/03/06 Python
Python多线程thread及模块使用实例
2020/04/28 Python
TensorFlow中如何确定张量的形状实例
2020/06/23 Python
scrapy实践之翻页爬取的实现
2021/01/05 Python
利用html5的websocket实现websocket聊天室
2013/12/12 HTML / CSS
针对HTML5的Web Worker使用攻略
2015/07/12 HTML / CSS
简述安装Slackware Linux系统的过程
2012/05/08 面试题
一道输出判断型Java面试题
2014/10/01 面试题
化学教师自荐信范文
2013/12/28 职场文书
青年文明号事迹材料
2014/01/18 职场文书
《埃及的金字塔》教学反思
2014/04/07 职场文书
家长对孩子的评语
2014/04/18 职场文书
应急管理培训方案
2014/06/12 职场文书
纪检干部个人对照检查材料
2014/09/23 职场文书
创业计划书之餐饮馄饨店
2019/07/18 职场文书