专业游戏门户,分享手游网游单机游戏百科知识攻略!

嗨游网
嗨游网

盗链是什么?php怎么伪造Referer请求反盗链资源(附示例)

来源:小嗨整编  作者:小嗨  发布时间:2024-03-14 09:22
摘要:本篇文章给大家带来的内容是关于盗链是什么?php怎么伪造referer请求反盗链资源(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。有些产品为了防止自己的产品被盗链访问,会采用反盗链措施,如封闭型生态的音乐网站和视...

本篇文章给大家带来的内容是关于盗链是什么?php怎么伪造referer请求反盗链资源(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

有些产品为了防止自己的产品被盗链访问,会采用反盗链措施,如封闭型生态的音乐网站和视频网站,他们已经为了版权付费,自然不希望你免费使用他们的资源。但因为很多人专门研究盗链,因此我们也需要了解下盗链、反盗链和逃避反盗链的原理。

盗链

引用百度百科对盗链的定义:

盗链是指服务提供商自己不提供服务的内容,通过技术手段绕过其它有利益的最终用户界面(如广告),直接在自己的网站上向最终用户提供其它服务提供商的服务内容,骗取最终用户的浏览和点击率。受益者不提供资源或提供很少的资源,而真正的服务提供商却得不到任何的收益。

常规盗链

我们知道,网站提供服务是向服务端请求一个html文件,这个文件中包含有css/js文件,也包含img/video标签,这些静态资源会在html文件加载时,依次的发起请求并填充在指定位置上,从而完成整个页面的加载。

因此只要拿到这个图片的URL并嵌入我们自己的html文件中,就能在我们的网站上访问,由于资源是不同的HTTP请求独立访问的,因此我们也能过滤源站的html文件。这就是最简单的盗链。

危害:在用户访问时,并没有在访问被盗链网站,但是依然会占用该网站的带宽资源,而带宽是要给运营商付费的。同时,该网站的广告、周边、宣传等资源并不会被用户访问到。

分布式盗链

分布式盗链比较复杂,需要在服务端部署专门的程序,并不针对单个网站或单个url,而是对全网的所有有用的资源进行盗取,并存储在自己的数据库中,并在用户实际访问时,完全转换为自己的流量。

危害:自己通过劳动、金钱、版权付费得到的资源,被盗链网站免费使用,如网店摄影图、期刊、电视剧等。并因此导致自己的会员、服务无法实现盈利。

反盗链分类

我们了解了盗链对源站的危害后,自然要通过一些手段来阻止这种行为维护自己的利益。

加水印

这是最简单的方法,通过后端程序批量对图片等资源加上水印,这样在盗链的同时,也在为自己的网站做宣传,有时甚至会主动寻求这种盗链。

资源重命名

因为盗链是通过指定的url,这个url中一定包含该资源的路径和名称,因此通过不定期的更改文件或目录的名称,能够快速避免盗链,但也会导致正在下载的资源被中断。

限制引用页

在http请求的头部信息中,有一个字段:referer,它代表这个请求是从哪个页面发起的,如果是单独在页面中打开或者服务端请求的,则这个字段为空。因此我们可以通过referer这个字段的值做限制,如果是自己认可的页面,则返回资源,否则,禁止该请求。但是由于每次都要打开一个白名单的文件做url匹配,因此会降低性能。

加密认证

在客户端通过将用户认证的信息和资源的名称进行组合后加密,将加密的字符串作为url的参数发起请求,在服务端进行解密并认证通过后,才会返回请求的资源。这个方式主要用于防范分布式盗链。

反盗链程序

上面的3种反盗链方式,我们常用的是第三种,通过referer属性来完成反盗链,今天也主要分享这一种方法的反盗链与防反盗链。

后端程序限制

这种限制需要消耗服务端计算资源,因此不如Nginx限制常用。

$from = parse_url($_SERVER['HTTP_REFERER']);if ($from['host']!='xxx' && $from['host']!='www.xxx') {    die('你丫在盗链');}
登录后复制

Nginx限制

通过修改nginx配置文件可以做到,修改完成后记得重启nginx:

// 这里指定需要防盗链的资源,如gif/jpg等location ~* \.(gif|jpg|png|jpeg)$ {    // 设置资源的过期时间    expires 30d;    // 设置合法的引用页,也就是防盗链的白名单;    // none blocked保证用户在新页面打开时依然能够打开,如果不希望用户能够保存删掉这两项    valid_referers none blocked *.hugao8 *.baidu *.google;    // 对于非法的引用页,可以重写图片,也可以直接返回403或404页面    if ($invalid_referer) {        rewrite ^/http://www.hkm168.com/uploadfile/ueditor/image/202403/smwpg0b1jeo.jpg;        #return 404;    }}
登录后复制

Referer-Policy

Referer 首部包含了当前请求页面的来源页面的地址,即表示当前页面是通过此来源页面里的链接进入的。服务端一般使用 Referer 首部识别访问来源,可能会以此进行统计分析、日志记录以及缓存优化等。

Referer属性出现在请求头中,也在请求头中被设置,但是在浏览器的安全策略里,该值无法被js所指定:

$.ajax({        url: 'http://www.baidu',        beforeSend(xhr) {            // 在发送ajax请求前设置header头部            xhr.setRequestHeader("Referer", "http://translate.google/");            xhr.setRequestHeader("User-Agent", "stagefright/1.2 (Linux;Android 5.0)");        },        success(data) {            console.log(data);        },        error(err) {            console.log(err);        }});
登录后复制

然而浏览器会报错:

登录后复制

防反盗链

前端JS不能在头部设置Referer字段,和跨域一样是因为浏览器的安全策略,那么同样的在服务端进行请求就不会有这些限制,我们在服务端请求时就可以自由的修改Referer字段。

我们通过简单的PHP例子来完成这个功能:

";?>
登录后复制

我们第一次请求注释了伪造来源地址这一行,第二次请求不注释这一行,这样可以验证执行结果:

总结

盗链和反盗链是一个对立面,技术不断升级,最终的目标也是为了开放资源和保护知识产权。在互联网生态里,我们通过反盗链保护我们的利益,也使用防反盗链的这种方式来扩大我们的内容,无论站在哪一方,都需要做到知己知彼。

以上就是盗链是什么?php怎么伪造Referer请求反盗链资源(附示例)的详细内容,更多请关注易企推科技其它相关文章!


本文地址:网络百科频道 https://www.eeeoo.cn/wangluo/1147633.html,嗨游网一个专业手游免费下载攻略知识分享平台,本站部分内容来自网络分享,不对内容负责,如有涉及到您的权益,请联系我们删除,谢谢!


网络百科
小编:小嗨整编
相关文章相关阅读
  • 荔枝app录音怎么导出音频(荔枝app的音频怎么转成mp3格式)?

    荔枝app录音怎么导出音频(荔枝app的音频怎么转成mp3格式)?

    荔枝app录音怎么导出音频(荔枝app的音频怎么转成mp3格式)?荔枝app作为一款流行的音频录制与分享平台,让许多用户可以在其中录制属于自己的声音。但有时候,我们可能需要将荔枝app中的录音导出为MP3格式,以便在其他设备上播放。本文将为...

  • 华为应用商店app官网(华为应用商店app怎么下载)?

    华为应用商店app官网(华为应用商店app怎么下载)?

    华为应用商店app官网(华为应用商店app怎么下载)?华为应用商店App作为华为手机用户的首选应用下载平台,提供了丰富的应用程序、游戏资源,同时也保证了应用的安全性和稳定性。那么,如何从官网下载华为应用商店App呢?本文将为您详细介绍。一、...

  • 淘宝app怎么打开(淘宝app在哪里找)?

    淘宝app怎么打开(淘宝app在哪里找)?

    淘宝app怎么打开(淘宝app在哪里找)?在现代生活中,淘宝App已经成为我们购物的重要工具之一。那么,淘宝App到底怎么打开?又该如何找到并下载它呢?本文将为您详细解答。一、淘宝App的下载方法1.通过手机应用商店下载对于安卓用户:打开手...

  • 魔兽世界泰兰德是什么职业(魔兽世界泰兰德幻化怎么获得)?

    魔兽世界泰兰德是什么职业(魔兽世界泰兰德幻化怎么获得)?

    魔兽世界泰兰德是什么职业(魔兽世界泰兰德幻化怎么获得)?在魔兽世界中,泰兰德是魔兽世界中暗夜精灵种族的代表性角色,她以牧师职业为主。牧师在游戏中拥有强大的治疗和辅助能力,是团队中不可或缺的重要角色。泰兰德作为一名牧师,擅长使用圣光和暗影之力...

  • 魔兽世界恶魔术士天赋加点(魔兽世界恶魔术士属性怎么堆)?

    魔兽世界恶魔术士天赋加点(魔兽世界恶魔术士属性怎么堆)?

    魔兽世界恶魔术士天赋加点(魔兽世界恶魔术士属性怎么堆)?在魔兽世界中,恶魔术士是一个以高爆发和持续伤害著称的职业。合理的天赋加点对于恶魔术士的输出至关重要。本文将为您详细介绍恶魔术士的天赋加点方法,以及如何高效堆叠属性。魔兽世界恶魔术士天赋...

  • lol道聚城怎么赠送皮肤(lol道聚城优惠券领取)?

    lol道聚城怎么赠送皮肤(lol道聚城优惠券领取)?

    lol道聚城怎么赠送皮肤(lol道聚城优惠券领取)?lol道聚城作为英雄联盟的官方周边商城,提供了丰富的游戏周边产品和优惠活动。在道聚城中,赠送皮肤成为了许多玩家表达友谊与支持的方式。下面将为您详细介绍如何在lol道聚城赠送皮肤,以及如何领...

  • lol小丑的名字叫什么(lol小丑怎么分辨真假)?

    lol小丑的名字叫什么(lol小丑怎么分辨真假)?

    lol小丑的名字叫什么(lol小丑怎么分辨真假)?在lol英雄联盟中,小丑(Janna)作为一位辅助英雄,以其独特的技能和出色的辅助能力深受玩家喜爱。然而,许多玩家在游戏中可能遇到真假小丑难以辨别的问题。本文将为大家详细解析LOL小丑的名字...

  • dnf格斗大赛黄金套外观(dnf格斗大赛装扮兑换券怎么获得)?

    dnf格斗大赛黄金套外观(dnf格斗大赛装扮兑换券怎么获得)?

    dnf格斗大赛黄金套外观(dnf格斗大赛装扮兑换券怎么获得)?在dnf中,格斗大赛黄金套一直是玩家们梦寐以求的稀有装扮。这套装扮不仅外观炫酷,而且属性强大,深受玩家们的喜爱。那么,黄金套的外观究竟如何,我们又该如何获得兑换券呢?本文将为您一...

  • 周排行
  • 月排行
  • 年排行

精彩推荐