盜鏈?zhǔn)侵敢粋€網(wǎng)站的資源(圖片資源、視頻資源、文件等)未經(jīng)許被其它網(wǎng)站提供瀏覽和下載。
盜鏈行為會對服務(wù)器資源以及帶寬消耗非常大,但實際網(wǎng)站的訪問量卻并沒有得到提升。所以網(wǎng)站必須要有有效的防盜鏈措施。
本文通過Nginx的配置指令valid_referers來實現(xiàn)簡單的圖片和其它類型文件的防盜鏈。
博主未測試,請自行檢驗
添加位置:

location ~ .(jpg|png|gif)$ {
valid_referers none blocked mysite.com *.mysite.com;
if ($invalid_referer) {
return 403;
}
}
用 “ | ” 來分隔你想保護的文件的擴展名。
valid_referers指令允許你定義一個網(wǎng)站列表,當(dāng)不在列表中的網(wǎng)站訪問時,返回403錯誤。
none參數(shù)表示匹配沒有Referer的HTTP請求。
blocked參數(shù)表示請求有Referer,但是被防火墻或者代理服務(wù)器修改,去掉了https://或http://。
后面跟網(wǎng)站列表,支持頂級域名和二級域名以及通配符。
除了使用location對文件訪問進行限制,也可以對指定目錄進行限制。
下面的配置會對images目錄下所有文件進行防盜鏈處理:
location /images/ {
valid_referers none blocked mysite.com *.mysite.com;
if ($invalid_referer) {
return 403;
}
}
這些配置都是簡單的防盜鏈方法。可有效地屏蔽一些直接引用網(wǎng)站鏈接的盜鏈方式;如果盜鏈網(wǎng)站偽造了HTTP請求,這種方法不能有效地屏蔽。
反盜鏈的一些其它措施
比較原始的方法是定期更換目錄名或者文件名。這種方法可使用腳本程序來自動化處理。比較高級的方法是進行Cookie或者Session加密驗證,添加驗證碼等。