💨 作者:
laker,因為喜歡LOL滴神faker,又是NBA湖人隊🏀(laker)粉絲兒(主要是老詹的粉絲兒),本人又姓李,故取筆名:laker
??喜歡分享自己作業中遇到的問題和解決方案,以及一些讀書筆記和心得分享,
🌰本人創建了微信公眾號【Java大廠面試官】,用于和大家交流分享
🏰 個人微信【lakernote】,加作者備注下暗號:cv之道,
文章目錄
- 前言
- 什么是盜鏈?
- 為什么要做防盜鏈?
- 如何實作防盜鏈呢?
- 如何破解防盜鏈?
前言
今天我的一位公眾號讀者告訴我,昨天發的文章【今天來聊一聊什么是軟體設計中的上游和下游?】裂開了,我打開一看果不其然,如下圖:

可惡的防盜鏈機制,這不是什么彩蛋,這真的是踩雷了,因為我寫文章會同時發布在csdn【名稱:lakernote,歡迎大家同時關注】和公眾號,所以自己搞了個圖床,但是現在很多圖床或者網站都會有防盜鏈機制,才導致了這個悲劇,那么剛好借此機會來研究下防盜鏈相關知識吧🌹🌹🌹(因禍得福系列,剛好不知道寫什么,就送上門了),
熟悉我的人,可能已經知道分析的套路了,3w三板斧,
什么是盜鏈?
我舉個例子

比如我想搞個資源搜索系統,就是管理搜索常見的資源(圖片、音樂、視頻、檔案等),但是我又沒有那么多錢去買流量和存盤空間,所以啊我就去其他很大的網站比如騰訊、愛奇藝等等,直接把他們的資源地址放到我的網站上,那么我就不需要去花大價錢去存盤這些資源,豈不是美滋滋!
盜鏈:未經他人同意,盜取他們的資源鏈接為自己所用,占用他們的空間和帶寬,
為什么要做防盜鏈?
通過上個例子,就很容易回答這個問題,典型的借雞生蛋,感覺被綠了啊,必須干他啊,

盜鏈者盜取了網站的空間和流量,獲取利益卻不承擔了資源使用費,為了防止這種行為越來越多的站點都開始實施防盜鏈技術,
看個微信的防盜鏈例子,還是上面的圖哈,

但是如果我在自己的網站引入,例如:
<img src="https://mmbiz.qpic.cn/mmbiz_png/YicnX8X2UoH4ZicHvx9fe28x9TvDMAM19U3huKyf0ibO96YahxhriajoXZLXSKXfZLu84n4XvekyoxZTu0ThnERtoA/640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1"/>
微信的防盜鏈效果如下:

如何實作防盜鏈呢?
🔓當客戶端(瀏覽器)向服務器請求內容的時候,會提交一個header,這個header中包含了如:瀏覽器資訊、cookie等內容,那么有一個叫referer的東東,也包含在這里面,
referer是干啥用的呢?
Http協議又學習到一手,之前還有一手Http狀態碼301、302區別【作業這么久,你應該知道的短鏈接架構設計!】
它就是告訴服務器,這個請求的來源是誰,比如:從頁面A跳轉到頁面B,那么頁面B收到的referer就是頁面A,
但是在圖片身上和這個有點不同,圖片是在html頁面加載完畢后才加載的,所以圖片收到的referer不是網頁的上一個頁面,而是當前頁面,
說這么多,不要被說繞了,簡單點就是:對于圖片而言,收到的referer就是參考圖片的這個網頁的網址,
那么現在的很多網站是如何利用referer來進行防圖片盜鏈的呢?
幾種情況下允許參考圖片:
- 本網站,
- 無referer資訊的情況,(服務器認為是從瀏覽器直接訪問的圖片URL,所以這種情況下能正常訪問)
- 白名單網址,
- 登錄校驗(如必須登錄網站帳號后才能訪問)
如何破解防盜鏈?
本來不想講的,畢竟這也太不道德了🐶,,,
粗略的講幾個方案,自己去體會吧 🔑 🔑 🔑
- 如果盜用圖片資源是
http協議那么盜用網址可以使用 https 去請求會因為安全性的規定,而不帶referer,從而實作防盜鏈的繞過, - 在 HTML 代碼的 head 中添加一句
<meta name="referrer" content="no-referrer" /> <img referrer="no-referrer|origin|unsafe-url" src="{item.src}"/>- 利用
iframe偽造請求referer - 客戶端請求頭是不可信的,服務端模擬成客戶端然后偽造請求頭
referer
具體方案,可以加我個人微信單聊哦【lakernote】
參考:
https://juejin.cn/post/6844903825124360200
https://www.zhihu.com/question/35044484/answer/116103504
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/242841.html
標籤:其他
上一篇:搭建SQLo靶機與練習
下一篇:回首2020
