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 自动分号插入(JavaScript synat:auto semicolon insertion)
Nov 04 Javascript
鼠标移入移出事件改变图片的分辨率的两种方法
Dec 17 Javascript
js使用DOM设置单选按钮、复选框及下拉菜单的方法
Jan 20 Javascript
判断访客终端类型集锦
Jun 05 Javascript
javascript类型系统_正则表达式RegExp类型详解
Jun 24 Javascript
checkbox 选中一个另一个checkbox也会选中的实现代码
Jul 09 Javascript
完美解决jQuery符号$与其他javascript 库、框架冲突的问题
Aug 09 Javascript
JS数组去掉重复数据只保留一条的实现代码
Aug 11 Javascript
解决vue 项目引入字体图标报错、不显示等问题
Sep 01 Javascript
Jquery遍历筛选数组的几种方法和遍历解析json对象,Map()方法详解以及数组中查询某值是否存在
Jan 18 jQuery
Vue实现简单的跑马灯
May 25 Javascript
JS数组的常用方法整理
Mar 31 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
phpMyAdmin 链接表的附加功能尚未激活的问题
2010/08/01 PHP
eAccelerator的安装与使用详解
2013/06/13 PHP
php获取网卡的MAC地址支持WIN/LINUX系统
2014/04/30 PHP
ThinkPHP独立分组使用的注意事项
2014/11/25 PHP
PHP中SERIALIZE和JSON的序列化与反序列化操作区别分析
2016/10/11 PHP
判断是否输入完毕再激活提交按钮
2006/06/26 Javascript
javascript 一个函数对同一元素的多个事件响应
2009/07/25 Javascript
jquery与google map api结合使用 控件,监听器
2010/03/04 Javascript
一些相见恨晚的 JavaScript 技巧
2010/04/25 Javascript
Javascript判断文件是否存在(客户端/服务器端)
2014/09/16 Javascript
让javascript加载速度倍增的方法(解决JS加载速度慢的问题)
2014/12/12 Javascript
jQuery中:only-child选择器用法实例
2015/01/03 Javascript
js中字符串编码函数escape()、encodeURI()、encodeURIComponent()区别详解
2016/04/01 Javascript
jQuery实现的简单拖动层示例
2017/02/22 Javascript
JS数组搜索之折半搜索实现方法分析
2017/03/27 Javascript
3种vue组件的书写形式
2017/11/29 Javascript
vue+vuex+axios实现登录、注册页权限拦截
2018/03/09 Javascript
实例详解vue中的$root和$parent
2019/04/29 Javascript
nodejs实现用户登录路由功能
2019/05/22 NodeJs
前端Vue项目详解--初始化及导航栏
2019/06/24 Javascript
js实现简易ATM功能
2020/10/27 Javascript
使用vue编写h5公众号跳转小程序的实现代码
2020/11/27 Vue.js
零基础写python爬虫之爬虫编写全记录
2014/11/06 Python
django DRF图片路径问题的解决方法
2018/09/10 Python
Pycharm代码无法复制,无法选中删除,无法编辑的解决方法
2018/10/22 Python
Python网络爬虫之爬取微博热搜
2019/04/18 Python
python框架flask入门之环境搭建及开启调试
2020/06/07 Python
html5/css3响应式页面开发总结
2018/10/16 HTML / CSS
Tom Dixon官网:英国照明及家具设计和制造公司
2019/03/01 全球购物
荷兰DOD药房中文官网:DeOnlineDrogist
2020/12/27 全球购物
介绍一下linux的文件权限
2012/02/15 面试题
助人为乐道德模范事迹材料
2014/08/16 职场文书
运动会加油稿100字
2014/09/19 职场文书
2014年酒店前台工作总结
2014/11/14 职场文书
大学生创业事迹材料
2014/12/30 职场文书
住房公积金贷款工资证明
2015/06/12 职场文书