日韩欧美人妻无码精品白浆,www.大香蕉久久网,狠狠的日狠狠的操,日本好好热在线观看

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開(kāi)發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

Nginx如何實(shí)現(xiàn)網(wǎng)站圖片和文件下載的防盜鏈

admin
2025年6月29日 15:0 本文熱度 127

什么是防盜鏈?

舉個(gè)例子來(lái)說(shuō),有兩個(gè)網(wǎng)站,A網(wǎng)站想使用B網(wǎng)站的圖片,第一種方法是在A網(wǎng)站中直接添加B網(wǎng)站的圖片鏈接,第二種是將B網(wǎng)站的圖片下載回來(lái),然后上傳到A網(wǎng)站中使用,此時(shí),如果B網(wǎng)站不想讓A網(wǎng)站繼續(xù)使用此圖片了,可以通過(guò)添加一些限制來(lái)阻止A網(wǎng)站使用,這個(gè)阻止措施就是防盜鏈,添加了防盜鏈后,A網(wǎng)站再次使用通過(guò)URL請(qǐng)求B網(wǎng)站圖片的時(shí)候,就會(huì)提示錯(cuò)誤信息或者其他內(nèi)容,從而保護(hù)了原圖片,下面演示如何配置防盜鏈

環(huán)境準(zhǔn)備:

域名
IP
用途
www.server1.com192.168.130.128要配置防盜鏈的服務(wù)器
www.server2.com192.168.130.130盜用服務(wù)器

1、首先配置server1服務(wù)器,讓Nginx請(qǐng)求一個(gè)圖片,配置如下:

在nginx根目錄下創(chuàng)建文件夾image,在下面放一個(gè)1.png文件,訪問(wèn)www.server1.com/image/1.png,如下:

2、配置server2服務(wù)器,修改Nginx默認(rèn)頁(yè)面index.html,添加server1的圖片URL,如圖:

訪問(wèn)頁(yè)面,可以看到server1的圖片已經(jīng)加載出來(lái),如圖:

防盜鏈配置

Nginx中實(shí)現(xiàn)防盜鏈的配置主要有兩個(gè)模塊:

  • --with-http_secure_link_module:第三方模塊

  • refer模塊:Nginx自帶的


refer模塊

refer模塊原理是: 如果網(wǎng)站盜用了你的圖片,那么用戶在點(diǎn)擊或者查看這個(gè)盜鏈內(nèi)容時(shí),發(fā)送 http 請(qǐng)求的頭部中的 referer 字段將為該盜版網(wǎng)站的 url。此時(shí)我們通過(guò)獲取這個(gè)頭部信息,獲取http 發(fā)起請(qǐng)求的頁(yè)面,然后判斷這個(gè)地址是否是我們的合法頁(yè)面,不是則判斷為盜鏈

referer中比較重要的指令就是valid_referers,它后面可以攜帶多個(gè)參數(shù),表示多個(gè)referer頭都是有效的,語(yǔ)法如下:

valid_referers none | blocked | server_names | string ...;

主要參數(shù)有:

  • none:如果header中的referer為空,也能訪問(wèn)

  • blocked:header中的referer不為空,但值被防火墻或代理服務(wù)器偽裝過(guò),比如不帶http/https協(xié)議頭的資源允許訪問(wèn)

  • server_names:若 referer 中的站點(diǎn)域名和 server_names 中的某個(gè)域名匹配,則允許訪問(wèn)

  • 最后是任意字符或者正則表達(dá)式


Nginx 會(huì)通過(guò)查看 referer 字段和 valid_referers 后面的 referer 列表進(jìn)行匹配,如果匹配到了就將內(nèi)置的變量$invalid_referer值設(shè)置為0,否則設(shè)置該值為1,匹配的過(guò)程不區(qū)分大小寫

1、下面在server1服務(wù)器的Nginx配置防盜鏈設(shè)置,如圖:

  • ~*:開(kāi)始正則匹配,不區(qū)分大小寫

  • .表示除換行符之外的所有字符,*表示匹配0次或多次

  • (jpg|png|jpeg)$ 表示以這幾個(gè)后綴結(jié)尾


2、再次通過(guò)server2域名來(lái)請(qǐng)求頁(yè)面,可以看到圖片已經(jīng)無(wú)法加載,如圖:

注意:可靈活使用none、blocker等參數(shù)

secure_link模塊

通過(guò) referer 頭部值的防盜鏈方法過(guò)于脆弱,盜用者很容易通過(guò)偽造 referer 的值輕而易舉跳過(guò)防盜措施,在 Nginx 中有一種更為高級(jí)的防盜方式,即基于 secure_link 模塊,該模塊能夠檢查請(qǐng)求鏈接的權(quán)限以及是否過(guò)期,多用于下載服務(wù)器防盜鏈。這個(gè)模塊默認(rèn)未編譯進(jìn) Nginx,需要在源碼編譯時(shí)候添加--with-http_secure_link_module即可安裝成功

該模塊的通過(guò)驗(yàn)證 URL 中的哈希值的方式防盜鏈。它的防盜過(guò)程如下:

  • 由服務(wù)器或者 Nginx 生成安全的加密后的 URL, 返回給客戶端

  • 客戶端用安全的 URL 訪問(wèn) Nginx,獲取圖片等資源,由 Nginx 的 secure_link 變量判斷是否驗(yàn)證通過(guò)


通過(guò)配置 secure_link, secure_link_md5 指令,可實(shí)現(xiàn)對(duì)鏈接進(jìn)行權(quán)限以及過(guò)期檢查判斷的功能,secure_link 模塊的值有如下三種情況:

  • 空字符串: 驗(yàn)證不通過(guò)

  • 0: URL 過(guò)期

  • 1: 驗(yàn)證通過(guò)


通常使用這個(gè)模塊進(jìn)行 URL 校驗(yàn),那么如何生成合法的URL以及在Nginx中如何配置來(lái)校驗(yàn)這個(gè)URL呢?

生成合法的 URL 和 指令 secure_link_md5 有關(guān),例如:

secure_link_md5 "$secure_link_expires$uri secret_key";

如果Nginx中的secure_link_md5 是上述配置,那么生成合法的URL命令如下:

#2023-11-06 11:23:15+過(guò)期時(shí)間,比如+300s,然后轉(zhuǎn)換為時(shí)間戳為1699240995echo -n '1699240995/1.png secret_key' | \openssl md5 -binary | openssl base64 | tr +/ -_ | tr -d =

通過(guò)上述命令得到一個(gè)md5的值:YfagRTs8J-soGzU0_Whd1g,這個(gè)值很重要,接下來(lái)構(gòu)造URL和指令secure_link有關(guān),如果 secure_link 指令的配置如下:

secure_link $arg_md5,$arg_expires;

那么請(qǐng)求的url中必須帶上md5和expires參數(shù)才能正常訪問(wèn),例如:

http://www.server2.com/1.png?md5=YfagRTs8J-soGzU0_Whd1g&expires=1699240995

環(huán)境準(zhǔn)備:

域名
IP用途
www.server2.com192.168.130.130配置防盜鏈的服務(wù)器

1、首先在server2服務(wù)器配置Nginx,訪問(wèn)圖片路徑,如圖:

在/usr/local/nginx/image下上傳1.png,然后通過(guò)http://www.server2.com/1.png請(qǐng)求,如圖:

2、繼續(xù)修改server2服務(wù)器的Nginx配置,添加防盜鏈配置,如圖:

從上圖看出,我們自定義的是校驗(yàn)不通過(guò)的時(shí)候返回狀態(tài)碼405,現(xiàn)在我們?cè)俅握?qǐng)求下圖片,如圖:

返回405,說(shuō)明防盜鏈規(guī)則已經(jīng)生效,上面已經(jīng)提過(guò),如果要實(shí)現(xiàn)正常請(qǐng)求,需要在請(qǐng)求參數(shù)中攜帶md5和expires參數(shù)才可以,定義md5和expires的方法如下:

(1)、定義過(guò)期時(shí)間,這里使用shell演示,如下:

date -d "+300 seconds" +%s

(2)、使用過(guò)期時(shí)間生成md5,如下:

echo -n '1699256991/1.png secret_key' | openssl md5 -binary | openssl base64 | tr +/ -_ | tr -d =

注:secret_key需要與Nginx中配置的secret_key保持一致,否則請(qǐng)求不到資源

(3)、接下來(lái)使用url+md5+expires請(qǐng)求,即可正常訪問(wèn)了,如下:

http://www.server2.com/1.png?md5=ofVmCiO53rLdoisMOfZuPA&expires=1699256991

注意:在實(shí)際使用中,過(guò)期時(shí)間和 md5是需要通過(guò)開(kāi)發(fā)代碼來(lái)生成,因此,無(wú)論哪里需要請(qǐng)求這個(gè)資源,都需要md5和expires參數(shù)才能正常請(qǐng)求


閱讀原文:原文鏈接


該文章在 2025/7/1 23:19:44 編輯過(guò)
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開(kāi)發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

欧美激情欧美激情在线五月| 91反差视频 在线播放| 日B小視頻| 国产欧美网爆| 国产精品九九一区| 极品少妇后入式亚洲精品| 艹b视频泄露免费网站| 91爱三级| 成人在线情色超碰| 欧美不卡视频三区四区| 在线新黄片| 黄色成人在线激情视频| 中文字幕日韩无码麻豆| 亚洲无码久久久久久2| 色婷婷一区码| av少妇久久| 午夜福利成人综合精品在线| 深爱激情四射五月网| 日本一区二区黄色网| 99日韩视频| 日本操美女小穴| 黄色仓库AV官网| 居家人妻久久| 日本在线看久久| 中文字幕污网站| 国产偷拍自拍亚洲精品在线| 亚洲少妇后入| 欧美韩国日本第一页| 日本在线免费不卡在线| 久精品a大全| 欧美日韩亚洲台湾| 淫荡精品久久| 亚欧成人网站在线| 国产5P小蝴蝶在线| 在线观看黄色 av| 久久久99久夕| 久久人爽精品免费影视| 日韩欧美九九精品| 嘛豆深夜免费电影| 小美女无码视频| 亚州天堂Av在线|