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

JavaScript 防盗链的原理以及破解方法

来源:https://juejin.cn/post/6911242598266978311

标签:JavaScript,防盗链
0
投稿

猜你喜欢

  • 详解如何让页面与 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
  • Python基于回溯法子集树模板解决马踏棋盘问题示例

    2021-08-01 15:45:43
  • Python处理时间戳和时间计算等的脚本分享

    2021-12-20 10:36:50
  • Python从文件中读取数据的方法步骤

    2023-05-05 07:45:32
  • MySQL下载安装详情图文教程

    2024-01-24 15:48:48
  • Python使用Flask框架同时上传多个文件的方法

    2023-02-02 10:16:49
  • 总结Python编程中三条常用的技巧

    2022-06-04 05:52:04
  • Windows服务器MySQL中文乱码的解决方法

    2024-01-12 16:46:51
  • 解决在window下执行SQLSERVER定时备份的问题

    2024-01-13 15:17:09
  • 正则 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
  • MySql存储过程与函数详解

    2024-01-13 16:32:56
  • 以tensorflow库为例讲解Pycharm中如何更新第三方库

    2022-10-18 09:53:27
  • 实例说明Python中比较运算符的使用

    2021-04-05 02:46:39
  • CentOS7 64位下MySQL5.7安装与配置教程

    2024-01-17 16:32:12
  • pycharm快捷键汇总

    2022-12-30 22:43:40
  • asp之家 网络编程 m.aspxhome.com