JavaScript 防盗链的原理以及破解方法
作者:LuckyChou 时间:2024-04-18 10:11:03
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
来源:https://juejin.cn/post/6911242598266978311
标签:JavaScript,防盗链
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
详解如何让页面与 iframe 进行通信
2024-04-19 09:42:44
Python中使用Counter进行字典创建以及key数量统计的方法
2023-10-05 20:16:36
对vue2.0中.vue文件页面跳转之.$router.push的用法详解
2024-04-30 10:35:03
![](https://img.aspxhome.com/file/2023/6/130136_0s.jpg)
Python基于回溯法子集树模板解决马踏棋盘问题示例
2021-08-01 15:45:43
![](https://img.aspxhome.com/file/2023/6/105416_0s.jpg)
Python处理时间戳和时间计算等的脚本分享
2021-12-20 10:36:50
Python从文件中读取数据的方法步骤
2023-05-05 07:45:32
![](https://img.aspxhome.com/file/2023/7/90657_0s.png)
MySQL下载安装详情图文教程
2024-01-24 15:48:48
![](https://img.aspxhome.com/file/2023/5/69155_0s.jpg)
Python使用Flask框架同时上传多个文件的方法
2023-02-02 10:16:49
总结Python编程中三条常用的技巧
2022-06-04 05:52:04
Windows服务器MySQL中文乱码的解决方法
2024-01-12 16:46:51
![](https://img.aspxhome.com/file/2023/2/126312_0s.png)
解决在window下执行SQLSERVER定时备份的问题
2024-01-13 15:17:09
![](https://img.aspxhome.com/file/2023/1/88261_0s.jpg)
正则 global 属性介绍
2008-03-18 20:50:00
编写一个asp代码执行器
2007-09-24 16:05:00
Tag的自定义类
2010-03-18 15:53:00
PyQt Qt Designer工具的布局管理详解
2023-09-21 04:44:17
![](https://img.aspxhome.com/file/2023/7/87517_0s.png)
MySql存储过程与函数详解
2024-01-13 16:32:56
![](https://img.aspxhome.com/file/2023/8/111408_0s.png)
以tensorflow库为例讲解Pycharm中如何更新第三方库
2022-10-18 09:53:27
![](https://img.aspxhome.com/file/2023/7/120917_0s.png)
实例说明Python中比较运算符的使用
2021-04-05 02:46:39
![](https://img.aspxhome.com/file/2023/5/117975_0s.jpg)
CentOS7 64位下MySQL5.7安装与配置教程
2024-01-17 16:32:12
![](https://img.aspxhome.com/file/2023/1/107911_0s.jpg)
pycharm快捷键汇总
2022-12-30 22:43:40
![](https://img.aspxhome.com/file/2023/7/79417_0s.jpg)