加載中 ...
首頁 > 建站 > 策劃 > 正文

如何從技術上“絞殺”盜鏈者?

2019-06-20 13:59:55 來源:

/mmbiz_png/Pn4Sm0RsAugo5SicrbBWhBdrvsmIrWNwH79IdgwBuCldKPGDicPyLfzel3DBo8Odgd8VbbYiaUZG3qBz5DRhEbmgg/640?wx_fmt=png" data-type="png" data-w="340" _width="340px" src="https://upload.chinaz.com/2019/0620/2019062013511792511.jpg" data-fail="0"/>

referer 防盜鏈

Referer 首部包括了當前要求頁面的來歷頁面的地址,即暗示當前頁面是經由過程此來歷頁面里的鏈接進入的。以下所示的 request headers 中,其 referer 為https:/// 則申明其來歷是谷歌。

:authority:?developer.mozilla.org?:method:?GET?:path:?/zh-CN/docs/Web/HTTP/Headers/Referer?:scheme:?https?accept:?text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3?accept-encoding:?gzip,?deflate,?br?accept-language:?zh-CN,zh;q=0.9,en;q=0.8?cookie:?dwf_sg_task_completion=False?dnt:?1?referer:?https:///?upgrade-insecure-requests:?1?user-agent:?Mozilla/5.0?(Macintosh;?Intel?Mac?OS?X?10_14_5)?AppleWebKit/537.36?(KHTML,?like?Gecko)?Chrome/75.0.3770.90?Safari/537.36

以 nginx 為例,我們可以對指定域名的 referer 進行限制:

if?($http_referer?~*??)?{?return?403;?}

可是這類法子也其實不能完全制止失落一些域名要求,由于 referer 客戶也是可以自界說的。以 curl 為例,以下所示,經由過程 -H 指定 referer:XXXXX 的要求頭信息,便可以很輕松的繞過限制。

?curl?-H?"referer:http://"

image.png

IP 防盜鏈

顧名思義,即對指定 IP 或 IP 段進行限制拜候。例如一些爬蟲常常頻仍爬取網站資本,我們可以對其 IP 進行限制。

以 nginx 為例,nginx 的ngxhttpaccess_module 模塊可以用來設置許可/制止哪些IP或IP段拜候:

allow?1.1.1.1/24?#?許可IP段拜候deny?all?#?制止所有?IP?拜候

image.png

token 防盜鏈

上述的三種原生 HTTP 首部字段都能避免用戶隨便竊取資本,可是其劣勢相當較著,好比都極輕易被捏造。

以 nginx 為例安裝secure_link模塊,默許是沒有安裝的,要利用這個模塊必需在編譯時指定以下編譯參數:

--with-http_secure_link_module

secure link 防盜鏈道理:

  • 用戶拜候資本;

  • 辦事器按照secret密鑰、過時時候、文件uri天生加密串;

  • 將加密串與過時時候作為參數跟到文件下載地址的后面;

  • nginx下載辦事器領受到了過時時候,也利用過時時候、設置裝備擺設里密鑰、文件uri天生加密串;

  • 將用戶傳進來的加密串與本身天生的加密串進行對照,一致許可下載,紛歧致403。

具體的設置裝備擺設和利用可以參考:

https://nginx.org/en/docs/http/ngxhttpsecurelinkmodule.html。

固然除這類體例,你也能夠利用 nginx lua 來自行實現一些自界說的防盜鏈辦法。

【End】

“廣域創業網”的新聞頁面文章、圖片、音頻、視頻等稿件均為自媒體人、第三方機構發布或轉載。如稿件涉及版權等問題,請與

我們聯系刪除或處理,客服郵箱,稿件內容僅為傳遞更多信息之目的,不代表本網觀點,亦不代表本網站贊同

其觀點或證實其內容的真實性。

腾讯qq分分彩开奖结果