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插件PageSlide实现左右侧栏导航菜单
Apr 12 Javascript
JS拖拽插件实现步骤
Aug 03 Javascript
js实现温度计时间样式代码分享
Aug 21 Javascript
angularjs表格ng-table使用备忘录
Mar 09 Javascript
canvas红包照片实例分享
Feb 28 Javascript
jQuery Tree Multiselect使用详解
May 02 jQuery
bootstrap daterangepicker汉化以及扩展功能
Jun 15 Javascript
Vue resource三种请求格式和万能测试地址
Sep 26 Javascript
Vue自定义指令写法与个人理解
Feb 09 Javascript
解决layui页面按钮点击无反应,也不报错的问题
Sep 29 Javascript
JsonServer安装及启动过程图解
Feb 28 Javascript
JS数组方法some、every和find的使用详情
Oct 05 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
为什么《星际争霸》是测试人工智能的理想战场
2019/12/03 星际争霸
php相当简单的分页类
2008/10/02 PHP
PHP 调试工具Debug Tools
2011/04/30 PHP
深入file_get_contents与curl函数的详解
2013/06/25 PHP
PHP mkdir()无写权限的问题解决方法
2014/06/19 PHP
PHP实现随机发放扑克牌
2020/04/21 PHP
飞鱼(shqlsl) javascript作品集
2006/12/16 Javascript
js右键菜单效果代码
2007/07/21 Javascript
Easy.Ajax 部分源代码 支持文件上传功能, 兼容所有主流浏览器
2011/02/24 Javascript
jquery获得下拉框值的代码
2011/08/13 Javascript
js 立即调用的函数表达式如何写
2014/01/12 Javascript
原生js仿jq判断当前浏览器是否为ie,精确到ie6~8
2014/08/30 Javascript
自动完成的搜索框javascript实现
2016/02/26 Javascript
jQuery中的insertBefore(),insertAfter(),after(),before()区别介绍
2016/09/01 Javascript
ES6使用Set数据结构实现数组的交集、并集、差集功能示例
2017/10/31 Javascript
Vue2 轮播图slide组件实例代码
2018/05/31 Javascript
JavaScript控制浏览器全屏显示简单示例
2018/07/05 Javascript
JavaScript函数式编程(Functional Programming)高阶函数(Higher order functions)用法分析
2019/05/22 Javascript
vue+Element实现搜索关键字高亮功能
2019/05/28 Javascript
[04:40]2016国际邀请赛中国区预选赛全程TOP10镜头集锦
2016/07/01 DOTA
测试、预发布后用python检测网页是否有日常链接
2014/06/03 Python
深入了解Python数据类型之列表
2016/06/24 Python
关于Python如何避免循环导入问题详解
2017/09/14 Python
基于Python函数的作用域规则和闭包(详解)
2017/11/29 Python
python 3.6.4 安装配置方法图文教程
2018/09/18 Python
django orm 通过related_name反向查询的方法
2018/12/15 Python
对python中各个response的使用说明
2020/03/28 Python
python图片验证码识别最新模块muggle_ocr的示例代码
2020/07/03 Python
基于Python-Pycharm实现的猴子摘桃小游戏(源代码)
2021/02/20 Python
波兰品牌内衣及泳装网上商店:Astratex.pl
2017/02/03 全球购物
美国运动鞋和运动服零售商:Footaction
2017/04/07 全球购物
中职毕业生自我鉴定范文(3篇)
2014/09/28 职场文书
湖南省召开党的群众路线教育实践活动总结大会报告
2014/10/21 职场文书
有限公司股东合作协议书
2014/10/29 职场文书
2014年助理工程师工作总结
2014/11/14 职场文书
《称赞》教学反思
2016/02/17 职场文书