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 null undefined 空区别说明
Jun 13 Javascript
js中使用DOM复制(克隆)指定节点名数据到新的XML文件中的代码
Jul 27 Javascript
Notify - 基于jquery的消息通知插件
Oct 18 Javascript
计算新浪Weibo消息长度(还可以输入119字)
Jul 02 Javascript
JavaScript实现级联菜单的方法
Jun 29 Javascript
jQuery实现带水平滑杆的焦点图动画插件
Mar 08 Javascript
浅谈js中调用函数时加不加括号的问题
Jul 28 Javascript
js实现一个猜数字游戏
Mar 31 Javascript
浅析Vue项目中使用keep-Alive步骤
Jul 27 Javascript
react中实现搜索结果中关键词高亮显示
Jul 31 Javascript
VSCode使用之Vue工程配置eslint
Apr 30 Javascript
Egg Vue SSR 服务端渲染数据请求与asyncData
Nov 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
中英文字符串翻转函数
2008/12/09 PHP
解析用PHP读写音频文件信息的详解(支持WMA和MP3)
2013/05/10 PHP
深入PHP运行环境配置的详解
2013/06/04 PHP
Linux中为php配置伪静态
2014/12/17 PHP
PHP PDOStatement::fetchObject讲解
2019/02/01 PHP
BOOM vs RR BO5 第四场 2.14
2021/03/10 DOTA
jquery 指南/入门基础
2007/11/30 Javascript
Ext中下拉列表ComboBox组件store数据格式用法介绍
2013/07/15 Javascript
Jquery遍历checkbox获取选中项value值的方法
2014/02/13 Javascript
javascript文件中引用依赖的js文件的方法
2014/03/17 Javascript
jquery实现瀑布流效果分享
2014/03/26 Javascript
jQuery实现弹出窗口中切换登录与注册表单
2015/06/05 Javascript
Angular.js与Bootstrap相结合实现表格分页代码
2016/04/12 Javascript
浅谈JS之tagNaem和nodeName
2016/09/13 Javascript
jQuery实现CheckBox全选、全不选功能
2017/01/11 Javascript
BootStrap 页签切换失效的解决方法
2017/08/17 Javascript
解决vue+element 键盘回车事件导致页面刷新的问题
2018/08/25 Javascript
用原生 JS 实现 innerHTML 功能实例详解
2019/04/03 Javascript
Python设置在shell脚本中自动补全功能的方法
2018/06/25 Python
详解python做UI界面的方法
2019/02/27 Python
PyCharm+Qt Designer+PyUIC安装配置教程详解
2019/06/13 Python
详解pandas DataFrame的查询方法(loc,iloc,at,iat,ix的用法和区别)
2019/08/02 Python
python代码中怎么换行
2020/06/17 Python
使用OpenCV实现道路车辆计数的使用方法
2020/07/15 Python
详解基于python的全局与局部序列比对的实现(DNA)
2020/10/07 Python
VSCODE配置Markdown及Markdown基础语法详解
2021/01/19 Python
html5调用摄像头功能的实现代码
2018/05/07 HTML / CSS
亚历山大·王官网:Alexander Wang
2017/06/23 全球购物
德国咖啡批发商:Coffeefair
2019/08/26 全球购物
美国户外烹饪产品购物网站:Outdoor Cooking
2020/01/10 全球购物
2014年元旦联欢会活动策划方案
2014/02/16 职场文书
司法局群众路线教育实践活动开展情况总结
2014/10/25 职场文书
喋血孤城观后感
2015/06/08 职场文书
2016婚礼主持词开场白
2015/11/24 职场文书
干货:企业内部人才推荐奖励方案!
2019/07/09 职场文书
Nginx反向代理学习实例教程
2021/10/24 Servers