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 相关文章推荐
js document.write()使用介绍
Feb 21 Javascript
AngularJS基础 ng-copy 指令实例代码
Aug 01 Javascript
jquery-mobile表单的创建方法详解
Nov 23 Javascript
AngularJS Controller作用域
Jan 09 Javascript
vue.js 初体验之Chrome 插件开发实录
May 13 Javascript
[js高手之路]寄生组合式继承的优势详解
Aug 28 Javascript
vue中的ref和$refs的使用
Nov 22 Javascript
详解Vue用cmd创建项目
Feb 12 Javascript
使用Vue CLI创建typescript项目的方法
Aug 09 Javascript
vue实现短信验证码登录功能(流程详解)
Dec 10 Javascript
浅谈vue中document.getElementById()拿到的是原值的问题
Jul 26 Javascript
Ant Design的Table组件去除
Oct 24 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 命令行工具 shell_exec, exec, passthru, system详细使用介绍
2011/09/11 PHP
精美漂亮的php分页类代码
2013/04/02 PHP
Thinkphp使用mongodb数据库实现多条件查询方法
2014/06/26 PHP
ThinkPHP独立分组使用的注意事项
2014/11/25 PHP
Codeigniter通过SimpleXML将xml转换成对象的方法
2015/03/19 PHP
PHP判断是否连接上网络的方法
2015/07/01 PHP
Laravel 中创建 Zip 压缩文件并提供下载的实现方法
2019/04/02 PHP
javascript 命名空间以提高代码重用性
2008/11/13 Javascript
script的async属性以非阻塞的模式加载脚本
2013/01/15 Javascript
Jquery实现的角色左右选择特效
2014/05/21 Javascript
js父页面与子页面不同时显示的方法
2014/10/16 Javascript
JavaScript基础重点(必看)
2016/07/09 Javascript
js/jquery控制页面动态加载数据 滑动滚动条自动加载事件的方法
2017/02/08 Javascript
javascript设计模式之策略模式学习笔记
2017/02/15 Javascript
移动端利用H5实现压缩图片上传功能
2017/03/29 Javascript
微信小程序开发之实现自定义Toast弹框
2017/06/08 Javascript
js数字滑动时钟的简单实现(示例讲解)
2017/08/14 Javascript
vue.js动画中的js钩子函数的实现
2018/07/06 Javascript
layui点击左侧导航栏,实现不刷新整个页面,只刷新局部的方法
2019/09/25 Javascript
javascript设计模式 ? 解释器模式原理与用法实例分析
2020/04/17 Javascript
Linux下python3.7.0安装教程
2018/07/30 Python
python2.7和NLTK安装详细教程
2018/09/19 Python
python监测当前联网状态并连接的实例
2018/12/18 Python
Tornado实现多进程/多线程的HTTP服务详解
2019/07/25 Python
Python爬虫入门有哪些基础知识点
2020/06/02 Python
社区版pycharm创建django项目的方法(pycharm的newproject左侧没有项目选项)
2020/09/23 Python
德国鞋子网上商店:Omoda.de
2017/03/31 全球购物
Java里面如何把一个Array数组转换成Collection, List
2013/07/26 面试题
武汉世纪畅想数字传播有限公司 .NET笔试题
2015/06/13 面试题
医科大学生的自我评价
2013/12/04 职场文书
法院干警四风问题自我剖析材料
2014/09/29 职场文书
2014年驾驶员工作总结
2014/11/18 职场文书
2014年财务个人工作总结
2014/12/08 职场文书
队列队形口号
2015/12/25 职场文书
用position:sticky完美解决小程序吸顶问题的实现方法
2021/04/24 HTML / CSS
Python超详细分步解析随机漫步
2022/03/17 Python