溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Nginx設置Referer來防止盜圖的實現(xiàn)方法

發(fā)布時間:2020-10-07 03:09:56 來源:腳本之家 閱讀:124 作者:Jiajun的編程隨想 欄目:服務器

如果服務器的圖片被別的網(wǎng)站盜鏈,將影響服務器的帶寬以及訪問速度,這時我們就需要設置圖片文件或視頻文件的防盜鏈功能;

防盜鏈功能,簡單來說就是你可以直接訪問該資源,但是不能將我的資源鏈接放到你自己的服務器上讓別人訪問,尤其是圖片或視頻這種比較大的文件,容易導致服務器響應很慢。

如果不是圖床,還真怕別的網(wǎng)站直接使用本站圖片。這樣子流量很可能一下子就被刷光了,畢竟CDN都是白花花的銀子買來的。 因此,還是設置一個防盜鏈吧,Nginx就可以完成這個功能了。

一般來說,遵照HTTP協(xié)議實現(xiàn)的瀏覽器,在從A網(wǎng)站訪問B網(wǎng)站時,都會帶上當前網(wǎng)站的URL,以表明此次點擊是從何而起的。因此, Nginx的這個模塊也是依靠這個來實現(xiàn),所以,如果駭客不加此頭部,還是沒法愉快的防盜圖。

Nginx官網(wǎng)文檔如下:

Syntax: valid_referers none | blocked | server_names | string ...;
Default:    —
Context:    server, location

nginx referer指令簡介

nginx模塊ngx_http_referer_module通常用于阻擋來源非法的域名請求.我們應該牢記,偽裝Referer頭部是非常簡單的事情,所以這個模塊只能用于阻止大部分非法請求.我們應該記住,有些合法的請求是不會帶referer來源頭部的,所以有時候不要拒絕來源頭部(referer)為空的請求.

因此,我們可以在 server 或者 location 塊加上代碼,我是保存為 valid_referers.conf :

valid_referers none blocked server_names;

if ($invalid_referer) {
 return 403;
}

然后在對應需要的地方加上 include /etc/nginx/valid_referers.conf ,當然,執(zhí)行這個的前提是已經(jīng)把 valid_referers.conf 放到對應機器上的 /etc/nginx/valid_referers.conf 路徑下。

示例:

 location /articles/img {
  include /etc/nginx/valid_referers.conf;
  root /data/blog/code;
 }

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI